مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

طریقه استفاده از Controller ها در فریمورک Yii


Controller ها در برنامه های تحت وب (web application) باید از مسیر yii\web\Controller یا از طریق کلاس های فرزند خود، گسترش یابند. در برنامه های کنسول (console application)، آنها باید از مسیر yii\console\Controller یا کلاس های فرزند خود گسترش یابند.

برای مثال قصد داریم تا یک controller در پوشه controllers ایجاد کنیم.

مرحله 1 - داخل پوشه Controllers، یک فایل به نام ExampleController.php با کد زیر ایجاد کنید.

                    <?php 
   namespace app\controllers;

   use yii\web\Controller;

   class ExampleController extends Controller {

      public function actionIndex() {

         $message = "index action of the ExampleController";

         return $this->render("example",[

            'message' => $message

         ]);

      }

   }

?>

مرحله 2 – دراین مرحله، قصد داریم در پوشه views/example یک View بسازیم. بنابراین یک فایل به نام example.php با کد زیر ایجاد کنید.

<?php 
   echo $message; 
?>

هر برنامه، یک کنترلرِ پیش فرض دارد. در برنامه های تحت وب (web application)، کنترلرِ پیش فرض، همان Controller است، در حالی که در برنامه های کنسول (console application)، کنترلر پیش فرض، help می باشد. بنابراین، وقتی آدرس http://localhost:8080/index.php  باز می شود، کنترلرِ پیش فرض، که همان Controller است، درخواست را مدیریت می کند. شما می توانید کنترلرِ پیش فرض را در تنظیمات برنامه تغییر دهید.

کد زیر را در نظر بگیرید -

'defaultRoute' => 'main'

مرحله 3 - کد بالا را به فایل config/web.php اضافه کنید.

<?php 
   $params = require(__DIR__ . '/params.php'); 
   $config = [ 
      'id' => 'basic', 
      'basePath' => dirname(__DIR__), 
      'bootstrap' => ['log'], 
      'components' => [ 
         'request' => [ 
            // !!! insert a secret key in the following (if it is empty) - this is
               //required by cookie validation 
            'cookieValidationKey' => 'ymoaYrebZHa8gURuolioHGlK8fLXCKjO', 
         ], 
         'cache' => [ 
            'class' => 'yii\caching\FileCache', 
         ], 
         'user' => [ 
            'identityClass' => 'app\models\User', 
            'enableAutoLogin' => true, 
         ], 
         'errorHandler' => [ 
            'errorAction' => 'site/error', 
         ], 
         'mailer' => [ 
            'class' => 'yii\swiftmailer\Mailer', 
            // send all mails to a file by default. You have to set 
            // 'useFileTransport' to false and configure a transport 
            // for the mailer to send real emails. 
            'useFileTransport' => true, 
         ], 
         'log' => [ 
            'traceLevel' => YII_DEBUG ? 3 : 0, 
            'targets' => [ 
               [ 
                  'class' => 'yii\log\FileTarget',
                  'levels' => ['error', 'warning'], 
               ], 
            ], 
         ], 
         'db' => require(__DIR__ . '/db.php'), 
      ], 
      //changing the default controller 
      'defaultRoute' => 'example', 
      'params' => $params, 
   ]; 
   if (YII_ENV_DEV) { 
      // configuration adjustments for 'dev' environment 
      $config['bootstrap'][] = 'debug'; 
      $config['modules']['debug'] = [ 
         'class' => 'yii\debug\Module', 
      ]; 
      $config['bootstrap'][] = 'gii'; 
      $config['modules']['gii'] = [ 
         'class' => 'yii\gii\Module', 
      ]; 
   } 
   return $config; 
?>

مرحله 4 - آدرس http://localhost:8080/index.php را در آدرس بار مرورگر تان، تایپ کنید، مشاهده خواهید کرد که کنترلرِ پیش فرضتان example controller می باشد.

 

نکته: شناسه Controller یا Controller ID باید از حروف کوچک انگلیسی ، اعداد، /، خط فاصله و underscore یا زیرخط تشکیل شده باشد.

شما باید برای تبدیل controller ID به controller class name، کارهای زیر را انجام دهید -

  • کلمات را با خط فاصله از هم جدا کنید و اولین حرف کلمات را بصورت حرف بزرگ تایپ کنید.
  • خط فاصله ها را حذف کنید.
  • علامت slash(/) رابا back slash (\)جایگزین کنید
  • پسوند Controller را اضافه کنید.
  • فضای نام Controller را اضافه کنید.

مثال ها

کنترلرِ مربوط به route یا مسیر page می شود app\controllers\PageController.

کنترلرِ مربوط به route یا مسیر post-article می شود app\controllers\PostArticleController.

کنترلرِ مربوط به route یا مسیر user/post-article می شود app\controllers\user\PostArticleController.

کنترلرِ مربوط به route یا مسیر userBlogs/post-article می شود app\controllers\userBlogs\PostArticleController.

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید