Yii URL路由

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 URL路由

为了临时将您的应用程序置于维护模式中,您应该配置 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,你会看到以下内容。

Yii URL路由

创建URL

要创建各种类型的URL,您可以使用 yii\helpers\Url::to() 帮助方法。下面的示例假设正在使用默认的URL格式。

步骤1 - 在 SiteController 中添加一个 actionRoutes() 方法

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

这个方法只是简单地渲染了 routes 视图。

步骤2 - 在views/site目录下,创建一个名为 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() 函数的使用。

Yii URL路由

通过传递给 yii\helpers\Url::to() 方法的路由可以是相对的或绝对的,根据以下规则确定:

  • 如果路由为空,则使用当前请求的路由。

  • 如果路由没有前导斜杠,则被视为相对于当前模块的路由。

  • 如果路由不包含斜杠,则被视为当前控制器的动作ID。

    yii\helpers\Url 助手类还提供了几个有用的方法。

步骤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>

步骤5 − 如果您在Web浏览器中输入以下地址: http://localhost:8080/index.php?r=site/routes 你将会看到以下内容。

Yii URL路由

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程