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

Routing یا مسیریابی URLها در فریمورک Yii


برای تغییر route یا مسیرِ پیش فرض برنامه، باید property با نام defaultRoute را پیکربندی کنید.

مرحله 1 - فایل config/web.php را به شیوه زیر تغییر دهید.

<?php
   $params = require(__DIR__ . '/params.php');
   $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'defaultRoute' => 'site/contact',
      'components' => [
         //other code
?>

مرحله 2 – در مرورگر وب تان آدرس http://localhost:8080/index.php را تایپ کنید. اینجاست که شما صفحه contact را مشاهده خواهید کرد.

برای قرار دادن برنامه خود در حالت تعمیر و نگهداری به صورت موقت، شما باید property با نام yii\web\Application::$catchAll را پیکربندی کنید.

 

مرحله 3 - تابع زیر را به SiteController اضافه کنید.

public function actionMaintenance() {
   echo "<h1>Maintenance</h1>";
}

مرحله 4 - سپس فایل config/web.php را به صورت زیر ویرایش کنید.

<?php
   $params = require(__DIR__ . '/params.php');
   $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'catchAll' => ['site/maintenance'],
      'components' => [
         //OTHER CODE

مرحله 5 – حال اگر هر URL در برنامه خود تایپ کنید، صفحه ی زیر را مشاهده خواهید کرد.

ایجاد URL

برای ایجاد انواع مختلفی از URL ها می توانید از متد کمکی yii\helpers\Url::to() استفاده کنید. در مثال زیر فرض شده است که فرمت URL پیش فرض مورد استفاده قرار گرفته است.

مرحله 1 - متد actionRoutes() را به SiteController اضافه کنید.

public function actionRoutes() {
   return $this->render('routes');
}

این متد به سادگی route های مربوط به view ها را رندر می کند.

مرحله 2 – داخل مسیر views/site directory شوید و یک فایل با نام routes.php با کد زیر ایجاد کنید.

<?php
   use yii\helpers\Url;
?>

<h4>
   <b>Url::to(['post/index']):</b>
   <?php
      // creates a URL to a route: /index.php?r = post/index
      echo Url::to(['post/index']);
   ?>
</h4>

<h4>
   <b>Url::to(['post/view', 'id' => 100]):</b>
   <?php
      // creates a URL to a route with parameters: /index.php?r = post/view&id=100
      echo Url::to(['post/view', 'id' => 100]);
   ?>
</h4>

<h4>
   <b>Url::to(['post/view', 'id' => 100, '#' => 'content']):</b>
   <?php
      // creates an anchored URL: /index.php?r = post/view&id=100#content
      echo Url::to(['post/view', 'id' => 100, '#' => 'content']);
   ?>
</h4>

<h4>
   <b>Url::to(['post/index'], true):</b>
   <?php
      // creates an absolute URL: http://www.example.com/index.php?r=post/index
      echo Url::to(['post/index'], true);
   ?>
</h4>

<h4>
   <b>Url::to(['post/index'], 'https'):</b>
   <?php
      // creates an absolute URL using the https scheme: https://www.example.com/index.php?r=post/index
      echo Url::to(['post/index'], 'https');
   ?>
</h4>

مرحله 3 – در مرورگر وب تان آدرس http://localhost:8080/index.php?r=site/routes را تایپ کنید. حال شما می توانید برخی از کاربردهای تابع to() را مشاهده نمایید.

routeی که به yii\helpers\Url::to() پاس داده می شود با توجه به قوانین زیر می تواند به صورت نسبی (relative) یا مطلق (absolute) باشد :

  • اگر route یا مسیر خالی باشد، مسیر جاری درخواست شده مورد استفاده قرار می گیرد.
  • اگر مسیر دارای "/" باشد، به عنوان یک مسیر نسبی، مربوط به ماژول جاری در نظر گرفته می شود.
  • اگر مسیر حاوی هیچ "/"  نباشد، به عنوان یک action ID از کنترلر جاری در نظر گرفته می شود.

کلاس کمکی yii\helpers\Url متد های مفید بسیاری ارائه می دهد.

مرحله 4 – route های مربوط به viewها را مطابق با کدهای زیر ویرایش کنید.

<?php
   use yii\helpers\Url;
?>

<h4>
   <b>Url::home():</b>
   <?php
      // home page URL: /index.php?r=site/index
      echo Url::home();
   ?>
</h4>
 
<h4>
   <b>Url::base():</b>
   <?php
      // the base URL, useful if the application is deployed in a sub-folder of the Web root
      echo Url::base();
   ?>
</h4>
 
<h4>
   <b>Url::canonical():</b>
   <?php
      // the canonical URL of the currently requested URL
      // see https://en.wikipedia.org/wiki/Canonical_link_element
      echo Url::canonical();
   ?>
</h4>
 
<h4>
   <b>Url::previous():</b>
   <?php
      // remember the currently requested URL and retrieve it back in later requests
      Url::remember();
      echo Url::previous();
   ?>
</h4>

مرحله 5 - اگر آدرس http://localhost:8080/index.php?r=site/routes را در مرورگر وب تان تایپ کنید، صفحه ی زیر را مشاهده خواهید کرد.

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

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

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

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

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

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

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

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

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