路由別名功能可以使用一條規(guī)則,批量定義一系列的路由規(guī)則。
例如,我們希望使用user
可以訪問index模塊的User控制器的所有操作,可以使用:
// user 別名路由到 index/User 控制器
Route::alias('user','index/User');
如果在路由配置文件route.php
中定義的話,使用:
return [
'__alias__' => [
'user' => 'index/User',
],
];
和前面的方式是等效的。
然后可以直接通過URL地址訪問User控制器的操作,例如:
http://serverName/index.php/user/add
http://serverName/index.php/user/edit/id/5
http://serverName/index.php/user/read/id/5
如果URL參數(shù)綁定方式使用按順序綁定的話,URL地址可以進一步簡化,參考請求->方法參數(shù)綁定。
路由別名可以指向任意一個有效的路由地址,例如下面指向一個類
// user 路由別名指向 User控制器類
Route::alias('user','\app\index\controller\User');
路由別名不支持變量類型和路由條件判斷,單純只是為了縮短URL地址,并且在定義的時候需要注意避免和路由規(guī)則產(chǎn)生混淆。
支持給路由別名設置路由條件,例如:
// user 別名路由到 index/user 控制器
Route::alias('user','index/user',['ext'=>'html']);
或者在路由配置文件中使用:
return [
'__alias__' => [
'user' => ['index/user',['ext'=>'html']],
],
];
操作方法黑白名單(v5.0.2+
)
路由別名的操作方法支持白名單或者黑名單機制,例如:
// user 別名路由到 index/user 控制器
Route::alias('user','index/user',[
'ext'=>'html',
'allow'=>'index,read,edit,delete',
]);
或者使用黑名單機制
// user 別名路由到 index/user 控制器
Route::alias('user','index/user',[
'ext'=>'html',
'except'=>'save,delete',
]);
并且支持設置操作方法的請求類型,例如:
// user 別名路由到 index/user 控制器
Route::alias('user','index/user',[
'ext'=>'html',
'allow'=>'index,save,delete',
'method'=>['index'=>'GET','save'=>'POST','delete'=>'DELETE'],
]);