咨询热线:18076568990、0755-25823180

thinkphp 5.1 路由规则

2020-8-29 09:22| 发布者: shopwt| 查看: 714| 评论: 0

简介:V5.1.14+版本开始,可以在app.php设置文件中自界说默认的变量规则: 'default_route_pattern' => '[\w\-]+', 支持在规则路由中为变量用正则的方式指定变量规则,补充了动态变量无法限定具体的范例标题,而且支持

V5.1.14+版本开始,可以在app.php设置文件中自界说默认的变量规则:

'default_route_pattern'	=>	'[\w\-]+',

支持在规则路由中为变量用正则的方式指定变量规则,补充了动态变量无法限定具体的范例标题,而且支持全局规则设置。使用方式如下:

局部变量规则

局部变量规则,仅在当前路由有用:

// 界说GET哀求路由规则 并设置name变量规则
Route::get('new/:name', 'News/read')
    ->pattern(['name' => '\w+']);

不必要开头添加^大概在末了添加$,也不支持模式修饰符,体系会主动添加。

全局变量规则

设置全局变量规则,全部路由有用:

// 设置name变量规则(接纳正则界说)
Route::pattern('name', '\w+');
// 支持批量添加
Route::pattern([
    'name' => '\w+',
    'id'   => '\d+',
]);

组合变量规则

假如你的路由规则比力特别,可以在路由界说的时间使用组合变量。

比方:

Route::get('item--', 'product/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);

组合变量的上风是路由规则中没有固定的分隔符,可以随意组合必要的变量规则和分割符,比方路由规则改成如下一样可以支持:

Route::get('item', 'product/detail')
    ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']);
Route::get('item@-', 'product/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);

使用组合变量的环境下假如必要使用可选变量,则可以使用下面的方式:

Route::get('item-', 'product/detail')
    ->pattern(['name' => '[a-zA-Z]+', 'id' => '\d+']);

V5.1.6+版本开始,路由规则中的变量界说更加机动,整个路由规则就是一个组合变量筹划,比方你可以直接使用下面的路由界说:

Route::get('item/:name-:id', 'product/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);

5.1.6+版本以上,保举同一使用变量方式,服从更高。

动态路由

可以把路由规则中的变量传入路由地点中,就可以实现一个动态路由,比方:

// 界说动态路由
Route::get('hello/:name', 'index/:name/hello');

name变量的值作为路由地点传入。

动态路由中的变量也支持组合变量及拼装,比方:

Route::get('item--', 'product_:name/detail')
    ->pattern(['name' => '\w+', 'id' => '\d+']);

ShopWT(www.shopwt.com)是国内知名商城系统及商城网站建设提供商,其中销客多小程序系统为商家提供小程序商城开发、小程序分销系统、微分销系统、商城系统、电商网站建设、微信分销系统、小程序商城等多端商城及电子商务行业解决方案>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
收藏 分享 邀请

鲜花

握手

雷人

路过

鸡蛋

精彩阅读

更多+

最新活动

联系我们

产品及方案咨询:18076568990、0755-25823180

电子邮箱:web@shopwt.com、客服微信:shopwtcom

公司地址:深圳市罗湖区人民南路3002号国贸大厦B座1608楼

  • 官方公众号

  • 微信客服