کار با کنترلر و اکشن در yii2

در آموزش قبلی یک اشاره به نحوه ی نمایش صفحه ی home داشتیم
دیدیم که این صفحه با کنترلر site و اکشن index فایل index.php را از فولدر site واقع در views را فراخوانی میکند و نمایش میدهد.

برای دسترسی به کنترل ها چه در frontend و چه در backend میتوانیم به فولدرcontrollers رفته و آنها را مشاهده کنیم

به طور کلی کنترلر یکی از ۳ بخش اصلی MVC هست .
کنترلر شی ایست که از yii\base\Controller ارث میبره که به وسیله ی آن میتوان داده ها را کنترل کرد , درخواست ها را تجزیه و تحلیل نمود و عملی را اجرا یا خروجی ای را نمایش داد.

هر کنترلر به این صورت تعریف می شود
برای مثال ما کنترلری به نام User ایجاد میکنیم

class UserController extends Controller{
}

همانطورکه مشاهده میکنید پس از نام کنترلر عبارت Controller باید قرار بگیرد.

هر کنترلر میتواند تعداد زیادی action (اکشن) داشته باشد
در واقع اکشن ها متد های کلاسمون هستند که هرکدوم کار بخصوصی انجام میدهند

برای مثال اکشنی با نام about در کنترلر خود میسازیم

 public function actionAbout()
    {
        return $this->render('about');
    }

برای نوشتن اکشن خود باید کلمه کلیدی action را ابتدای نام اکشن خود بنویسیم
همانند کد بالا
در کد بالا متدی با نام actionAbout ایجاد کرده ایم که با استفاده از متدی به نام render صفحه ی about که در view کنترلر ایجاد می شود را نمایش می دهد.

مبحث بعدی Routes در کنترلر می باشد
شما با استفاده از نام کنترلر و نام اکشن میتونید به اکشن خود دسترسی داشته باشید
به این صورت که کافی است در مرورگر پس از آدرس سایت ادرس زیر را وارد نمایید

ControllerID/ActionID

برای مثال ما می شود : localhost:1004/About/about
برای درک بهتر localhost:1004/frontend/web/index.php?r=site/about
برای کنترلر site در پروژه ی خودمان.

در کنترلر شما میتوانید اکشن پیش فرض خود را با پروپرتی ای به نام defaultAction مشخص کنید
برای این کار کافی است که در کنترلر خود آن را تعیین کنید. به صورت پیش فرض این گزینه بر روی اکشن index می باشد

  public $defaultAction = 'about';

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *