一、变量规则
1、系统默认的路由变量规则为/w+,即字母下划线数字和中文;
2、如果想要更改默认的匹配规则,可以修改config/route.php配置
//默认的路由变量规则
'default_route_pattern' =>'[\w\.]+';
3、如果需要对于具体的变量进行单独的规则设置,需要通过pattern()方法
4、将details方法李的id值,严格限制只能是数字\d+
Route::rule('details/:id','Address/details')->pattern(['id'=>'\d+']);
5、可以设置两个参数的规则,通过数组的方式传递参数
Route::rule('search/:id/:uid', 'Address/search') -
>pattern([
> 'id' => '\d+',
> 'uid' => '\d+'
> ]);
6、上面两种均为局部变量,也可以之间在app.php设置全局变量规则
Route::pattern([
'id' => '\d+',
'uid' => '\d+'
]);
7、也支持组合变量规则方式,实现路由规则
Route::rule('details-<id>', 'address/details')
->pattern('id', '\d+');
8、 动态组合的拼装,地址和参数如果都是模糊动态的,可以使用如下方法
Route::rule('details-:name-:id', 'Hello:name/index') ->
pattern('id', '\d+');
二、闭包支持
1、闭包支持可以通过URL直接执行,而不需要通过控制器和方法
Route::get('think', function () {
return 'hello,ThinkPHP5!';
});
2、闭包也支持传递参数和动态规则
Route::get('hello/:name', function ($name) {
return 'Hello,' . $name;
});