当前位置:   article > 正文

thinkphp5路由的完整匹配_thinkphp route 匹配模式

thinkphp route 匹配模式

今天学习时候遇到这么一个问题:

当我输入网址访问 http://tm.cn/test/index/1 时候

Route::rule('test/index/:id', 'test/index/index', 'get'); 

上面的路由无法匹配到,而是跳转到了 test对应的路由,这是因为默认不是完整匹配,

Route::get([
    'test' => 'index/Index/test',
    'get_brands' => 'index/Index/list2',
]);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

但是如果我去掉:id时候就能正确匹配到第一个路由,经过查阅相关资料
可以通过下面两种方式处理,一个是将第二个路由,修改为如下:
$ 符号表示这个路由需要完整匹配,这样子http://tm.cn/test/index/1就不不会匹配到这个路由了,而是匹配到第一个路由了

Route::get([
    'test$' => 'index/Index/test',
    'get_brands' => 'index/Index/list2',
]);
  • 1
  • 2
  • 3
  • 4

还可以在应用配置config.php打开完整匹配,所有路径都是需要进行完整匹配

// 路由使用完整匹配
'route_complete_match'   => false,
  • 1
  • 2

这样子访问http://tm.cn/test/index/1 或者 http://tm.cn/test/index 都是可以访问到第一个路由,其中:id可传可不传

参考资料:
thinkphp路由的完整匹配

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/351313
推荐阅读