Skip to main content

路由

config文件夹下web.php 设置默认路由

 'defaultRoute' => 'main/index',

catchAll 路由(全拦截路由) 所有请求都指向这里,用于维护

'catchAll' => ['site/offline'],

创建 URLs

use yii\helpers\Url;

// 创建一个普通的路由URL:/index.php?r=post%2Findex
echo Url::to(['post/index']);

// 创建一个带路由参数的URL:/index.php?r=post%2Fview&id=100
echo Url::to(['post/view', 'id' => 100]);

// 创建一个带锚定的URL:/index.php?r=post%2Fview&id=100#content
echo Url::to(['post/view', 'id' => 100, '#' => 'content']);

// 创建一个绝对路径URL:http://www.example.com/index.php?r=post%2Findex
echo Url::to(['post/index'], true);

// 创建一个带https协议的绝对路径URL:https://www.example.com/index.php?r=post%2Findex
echo Url::to(['post/index'], 'https');

HTTP 方法

当使用 RESTful 接口时,经常需要根据 HTTP 请求方法将同样的URL解析到不同的路由。 可以容易的通过将支持的 HTTP 方法设置为 URL 规则的前缀来实现这个目的。 如果一个规则需要支持多种 HTTP 方法,可以将方法名称用逗号隔开。 例如,下面的规则有相同的模式 post/<id:\d+> 但是支持不同的 HTTP 方法。 一个 PUT post/100 请求将被解析到 post/update,GET post/100 请求将被解析到 post/view。

'rules' => [
'PUT,POST post/<id:\d+>' => 'post/update',
'DELETE post/<id:\d+>' => 'post/delete',
'post/<id:\d+>' => 'post/view',
]