路(lu)由(you)別名功(gong)能可以使用一(yi)條規則,批量定義一(yi)系列的路(lu)由(you)規則。
例如,我們希望使用user可以訪問(wen)index模塊(kuai)的(de)User控制器的(de)所有操作(zuo),可以使(shi)用:
// user 別名路由到 index/User 控(kong)制器
Route::alias('user','index/User');
如果在路由配置文件route.php中定義的話,使用:
return [
'__alias__' => [
'user' => 'index/User',
],
];
和前面的(de)方式是等效的(de)。
然后可以(yi)直接通過URL地址訪問(wen)User控制器的(de)操作,例(li)如(ru):
http://serverName/index.php/user/add
http://serverName/index.php/user/edit/id/5
http://serverName/index.php/user/read/id/5
如果URL參數綁定(ding)方式使用(yong)按順序綁定(ding)的話,URL地址(zhi)可以(yi)進一步(bu)簡化,參考(kao)請求(qiu)->方法參數綁定(ding)。
路由別名可以指向任意一個有效的(de)路由地址,例如(ru)下面指向一個類
// user 路由別名(ming)指向 User控(kong)制器類
Route::alias('user','\app\index\controller\User');
路由(you)(you)別名不支持變量類型和路由(you)(you)條件判斷,單純(chun)只是為了縮(suo)短URL地(di)址,并且在(zai)定義的時候需要注意避免和路由(you)(you)規則產生(sheng)混淆。
支(zhi)持(chi)給(gei)路由(you)別名(ming)設置路由(you)條件,例(li)如(ru):
// user 別名路由(you)到(dao) index/user 控制器
Route::alias('user','index/user',['ext'=>'html']);
或者(zhe)在路由配置文(wen)件中(zhong)使用:
return [
'__alias__' => [
'user' => ['index/user',['ext'=>'html']],
],
];
操作方法黑白名單(v5.0.2+)
路由別名(ming)的操作(zuo)方(fang)法(fa)支持白名(ming)單或者(zhe)黑名(ming)單機制,例如(ru):
// user 別名路由(you)到 index/user 控制器
Route::alias('user','index/user',[
'ext'=>'html',
'allow'=>'index,read,edit,delete',
]);
或(huo)者使用黑名單機制(zhi)
// user 別(bie)名路由(you)到 index/user 控制(zhi)器(qi)
Route::alias('user','index/user',[
'ext'=>'html',
'except'=>'save,delete',
]);
并且支(zhi)持設(she)置操(cao)作方法的請求(qiu)類(lei)型,例(li)如(ru):
// user 別名路(lu)由到 index/user 控制器
Route::alias('user','index/user',[
'ext'=>'html',
'allow'=>'index,save,delete',
'method'=>['index'=>'GET','save'=>'POST','delete'=>'DELETE'],
]);
