路由分組
路由分組
路由分組功能允許把相同前綴的路由定義合并分組,這樣可以提高路由匹配的效率,不必每次都去遍歷完整的路由規則。
例如,我們有定義如下兩個路由規則的話
'blog/:id' => ['Blog/read', ['method' => 'get'], ['id' => '\d+']],
'blog/:name' => ['Blog/read', ['method' => 'post']],
可以合并到一個blog分組
'[blog]' => [
':id' => ['Blog/read', ['method' => 'get'], ['id' => '\d+']],
':name' => ['Blog/read', ['method' => 'post']],
],
可以使用Route
類的group
方法進行注冊,如下:
Route::group('blog',[
':id' => ['Blog/read', ['method' => 'get'], ['id' => '\d+']],
':name' => ['Blog/read', ['method' => 'post']],
]);
可以給分組路由定義一些公用的路由設置參數,例如:
Route::group('blog',[
':id' => ['Blog/read', [], ['id' => '\d+']],
':name' => ['Blog/read', [],
],['method'=>'get','ext'=>'html']);
支持使用閉包方式注冊路由分組,例如:
Route::group('blog',function(){
Route::any(':id','blog/read',[],['id'=>'\d+']);
Route::any(':name','blog/read',[],['name'=>'\w+']);
},['method'=>'get','ext'=>'html']);
如果僅僅是用于對一些路由規則設置一些公共的路由參數,也可以使用:
Route::group(['method'=>'get','ext'=>'html'],function(){
Route::any('blog/:id','blog/read',[],['id'=>'\d+']);
Route::any('blog/:name','blog/read',[],['name'=>'\w+']);
});
路由分組支持嵌套,例如:
Route::group(['method'=>'get','ext'=>'html'],function(){
Route::group('blog',function(){
Route::any('blog/:id','blog/read',[],['id'=>'\d+']);
Route::any('blog/:name','blog/read',[],['name'=>'\w+']);
}
});
文檔最后更新時間:2018-04-25 19:33:28
未解決你的問題?請到「問答社區」反饋你遇到的問題