Yii - URL रूटिंग

एप्लिकेशन के डिफ़ॉल्ट मार्ग को बदलने के लिए, आपको कॉन्फ़िगर करना चाहिए defaultRoute संपत्ति।

Step 1 - संशोधित करें config/web.php निम्नलिखित तरीके से फाइल करें।

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

Step 2 - को मिल गया http://localhost:8080/index.php। आपको डिफ़ॉल्ट दिखाई देगाcontact पृष्ठ।

अपने आवेदन को अस्थायी रूप से रखरखाव मोड में रखने के लिए, आपको कॉन्फ़िगर करना चाहिए yii\web\Application::$catchAll संपत्ति।

Step 3 - निम्न फ़ंक्शन को इसमें जोड़ें SiteController

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

Step 4 - फिर, संशोधित करें config/web.php निम्नलिखित तरीके से फाइल करें।

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

Step 5 - अब अपने आवेदन के किसी भी URL को दर्ज करें, आप निम्नलिखित देखेंगे।

URL बनाना

विभिन्न प्रकार के URL बनाने के लिए आप इसका उपयोग कर सकते हैं yii\helpers\Url::to()सहायक विधि। निम्न उदाहरण मानता है कि डिफ़ॉल्ट URL प्रारूप का उपयोग किया जा रहा है।

Step 1 - जोड़ें actionRoutes() करने की विधि SiteController

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

यह विधि सरलता से प्रस्तुत करती है routes राय।

Step 2 - दृश्य / साइट निर्देशिका के अंदर, नामक एक फ़ाइल बनाएं 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>

Step 3 - टाइप करें http://localhost:8080/index.php?r=site/routes, आप के कुछ उपयोग देखेंगे to() समारोह।

मार्ग से गुजरा yii\helpers\Url::to() विधि निम्नलिखित नियमों के अनुसार सापेक्ष या निरपेक्ष हो सकती है -

  • यदि मार्ग खाली है, तो वर्तमान में अनुरोधित मार्ग का उपयोग किया जाएगा।

  • यदि मार्ग में कोई प्रमुख स्लैश नहीं है, तो इसे वर्तमान मॉड्यूल के सापेक्ष एक मार्ग माना जाता है।

  • यदि मार्ग में कोई स्लैश नहीं है, तो इसे वर्तमान नियंत्रक की एक कार्रवाई आईडी माना जाता है।

yii\helpers\Url सहायक वर्ग कई उपयोगी तरीके भी प्रदान करता है।

Step 4 - संशोधित करें routes निम्नलिखित कोड में दिए अनुसार देखें।

<?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>

Step 5 - अगर आप एड्रेस डालते हैं http://localhost:8080/index.php?r=site/routes वेब ब्राउज़र में, आप निम्नलिखित देखेंगे।