Учебники

Yii — URL-маршрутизация

Чтобы изменить маршрут приложения по умолчанию, вам необходимо настроить свойство 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 . Вы увидите страницу контактов по умолчанию.

Страница контактов

Чтобы временно перевести приложение в режим обслуживания, необходимо настроить свойство 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');
}

Этот метод просто отображает маршруты .

Шаг 2 — Внутри каталога views / site создайте файл rout.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 / routs , вы увидите некоторые варианты использования функции to () .

функционировать

Маршрут, передаваемый методу yii \ helpers \ Url :: to (), может быть относительным или абсолютным в соответствии со следующими правилами:

  • если маршрут пуст, будет использован текущий запрашиваемый маршрут.

  • если у маршрута нет косой черты, он считается маршрутом относительно текущего модуля.

  • если маршрут не содержит косых черт, он считается идентификатором действия текущего контроллера.

если маршрут пуст, будет использован текущий запрашиваемый маршрут.

если у маршрута нет косой черты, он считается маршрутом относительно текущего модуля.

если маршрут не содержит косых черт, он считается идентификатором действия текущего контроллера.

Вспомогательный класс yii \ helpers \ Url также предоставляет несколько полезных методов.

Шаг 4 — Изменить вид маршрутов, как показано в следующем коде.

<?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 / маршруты в веб-браузере, вы увидите следующее.