ThinkPHP5.0支持在规则路由中为变量用正则的方式指定变量规则,弥补了动态变量无法限制具体的类型问题,并且支持全局规则设置。使用方式如下:
设置全局变量规则,全部路由有效:
// 设置name变量规则(采用正则定义)
Route::pattern('name','\w+');
// 支持批量添加
Route::pattern([
'name' => '\w+',
'id' => '\d+',
]);
局部变量规则,仅在当前路由有效:
// 定义GET请求路由规则 并设置name变量规则
Route::get('new/:name','News/read',[],['name'=>'\w+']);
如果一个变量同时定义了全局规则和局部规则,局部规则会覆盖全局变量的定义。
如果要对整个URL进行规则检查,可以进行__url__
变量规则,例如:
// 定义GET请求路由规则 并设置完整URL变量规则
Route::get('new/:id','News/read',[],['__url__'=>'new\/\w+$']);