路由分組

路由分組

路由分組功能允許把相同前綴的路由定義合并分組,這樣可以提高路由匹配的效率,不必每次都去遍歷完整的路由規(guī)則。

例如,我們有定義如下兩個(gè)路由規(guī)則的話

'blog/:id'   => ['Blog/read', ['method' => 'get'], ['id' => '\d+']],
'blog/:name' => ['Blog/read', ['method' => 'post']],

可以合并到一個(gè)blog分組

'[blog]'     => [
    ':id'   => ['Blog/read', ['method' => 'get'], ['id' => '\d+']],
    ':name' => ['Blog/read', ['method' => 'post']],
],

可以使用Route類的group方法進(jìn)行注冊(cè),如下:

Route::group('blog',[
    ':id'   => ['Blog/read', ['method' => 'get'], ['id' => '\d+']],
    ':name' => ['Blog/read', ['method' => 'post']],
]);

可以給分組路由定義一些公用的路由設(shè)置參數(shù),例如:

Route::group('blog',[
    ':id'   => ['Blog/read', [], ['id' => '\d+']],
    ':name' => ['Blog/read', [],
],['method'=>'get','ext'=>'html']);

支持使用閉包方式注冊(cè)路由分組,例如:

Route::group('blog',function(){
    Route::any(':id','blog/read',[],['id'=>'\d+']);
    Route::any(':name','blog/read',[],['name'=>'\w+']);
},['method'=>'get','ext'=>'html']);

如果僅僅是用于對(duì)一些路由規(guī)則設(shè)置一些公共的路由參數(shù),也可以使用:

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+']);
    }
});
文檔最后更新時(shí)間:2018-04-25 19:33:28

文檔
目錄

深色
模式

切換
寬度