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

本文介绍了ThinkPHP6.0框架中的路由规则,包括如何设置变量规则,如修改默认匹配规则,设定局部与全局变量规则,以及组合变量规则。此外,还探讨了闭包的支持,说明了如何通过URL直接执行闭包,以及闭包如何处理参数和动态规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、变量规则

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; 
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值