thinkphp6.0路由篇之路由的变量规则和闭包

一、变量规则

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-', '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; 
});

你可能感兴趣的:(#,thinkphp6.0学习)