网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

批量注冊

批量注冊路由規則可以使用兩種方式,包括方法注冊和路由配置定義。

批量注冊

如果不希望一個個注冊,可以使用批量注冊,規則如下:

Route::rule([
'路由規則1'=>'路由地址和參數',
'路由規則2'=>['路由地址和參數','匹配參數(數組)','變量規則(數組)']
...
],'','請求類型','匹配參數(數組)','變量規則');

如果在外面和規則里面同時傳入了匹配參數和變量規則的話,路由規則定義里面的最終生效,但請求類型參數以最外層決定,例如:

Route::rule([
    'new/:id'  =>  'News/read',
    'blog/:id' =>  ['Blog/update',['ext'=>'shtml'],['id'=>'\d{4}']],
    ...
],'','GET',['ext'=>'html'],['id'=>'\d+']);

以上的路由注冊,最終blog/:id只會在匹配shtml后綴的訪問請求,id變量的規則則是 \d{4}

如果不同的請求類型的路由規則是一樣的,為了避免數組索引沖突的問題,請使用單獨的請求方法定義路由。

同樣,我們也可以使用其他幾個注冊方法進行批量注冊。

// 批量注冊GET路由
Route::get([
    'new/:id'  =>  'News/read',
    'blog/:id' =>  ['Blog/edit',[],['id'=>'\d+']]
    ...
]);
// 效果等同于
Route::rule([
    'new/:id'  =>  'News/read',
    'blog/:id' =>  ['Blog/edit',[],['id'=>'\d+']]
    ...
],'','GET');

定義路由配置文件

除了支持動態注冊,也可以直接在應用目錄下面的route.php 的最后通過返回數組的方式直接定義路由規則,內容示例如下:

return [
    'new/:id'   => 'News/read',
    'blog/:id'   => ['Blog/update',['method' => 'post|put'], ['id' => '\d+']],
];

路由配置文件定義的路由規則效果和使用any注冊路由規則一樣。

路由動態注冊和配置定義的方式可以共存,例如:

use think\Route;

Route::rule('hello/:name','index/index/hello');

return [
    'new/:id'   => 'News/read',
    'blog/:id'   => ['Blog/update',['method' => 'post|put'], ['id' => '\d+']],
];

默認情況下,只會加載一個路由配置文件route.php,如果你需要定義多個路由文件,可以修改route_config_file配置參數,例如:

// 定義路由配置文件(數組)
'route_config_file' =>  ['route', 'route1', 'route2'],

如果存在相同的路由規則,一樣可以參考前面的批量注冊方式進行定義。

由于檢測機制問題,動態注冊的性能比路由配置要高一些,尤其是多種請求類型混合定義的時候。

文檔最后更新時間:2018-04-25 18:15:42

文檔
目錄

深色
模式

切換
寬度