赞
踩
今天学习时候遇到这么一个问题:
当我输入网址访问 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',
]);
但是如果我去掉:id时候就能正确匹配到第一个路由,经过查阅相关资料
可以通过下面两种方式处理,一个是将第二个路由,修改为如下:
$ 符号表示这个路由需要完整匹配,这样子http://tm.cn/test/index/1就不不会匹配到这个路由了,而是匹配到第一个路由了
Route::get([
'test$' => 'index/Index/test',
'get_brands' => 'index/Index/list2',
]);
还可以在应用配置config.php打开完整匹配,所有路径都是需要进行完整匹配
// 路由使用完整匹配
'route_complete_match' => false,
这样子访问http://tm.cn/test/index/1 或者 http://tm.cn/test/index 都是可以访问到第一个路由,其中:id可传可不传
参考资料:
thinkphp路由的完整匹配
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。