Thinkphp5 路由 变量不能放在最前面?

2021-03-29 17:28:29 +08:00
 l890908
Route::get(':url', 'Child/detail'); 能匹配

Route::get('baby-:url', 'Child/detail'); 能匹配

Route::get(':url/baby', 'Child/detail'); 不能匹配

Route::get(':url-baby', 'Child/detail'); 不能匹配

问题就是要把变量放在前面怎么破?
1310 次点击
所在节点    程序员
8 条回复
tabris17
2021-03-29 17:31:38 +08:00
不是很懂 tp 这个框架,不过一般路由都支持正则匹配的,如果 tp 不支持,那么我只能说……
qwertyzzz
2021-03-29 17:35:28 +08:00
看看文档示例 里面好像有
l890908
2021-03-29 18:02:32 +08:00
@qwertyzzz 没有,TP3 很容易实现,正则匹配就好了,这个版本反而还不行,真奇怪
svipchao
2021-03-29 18:06:26 +08:00
ThinkPHP6 亲测可以
ouyc
2021-03-29 18:24:27 +08:00
没搞过 php,从 :url 这个参数和第一、二个匹配情况来看,参数应该是以 : 标记开始,后面跟着参数名 url 。第三、四参数应该是 url/baby 、url-baby,暂时不知道用什么标记结尾,你可以看下文档
ditel
2021-03-29 18:32:39 +08:00
把不能匹配的放最前面
l890908
2021-03-29 19:11:55 +08:00
@ditel 变量有办法放在最前面吗?
hm20062006ok
2021-03-29 20:06:51 +08:00
Route::get('hello/:name/[:city]','index/index/hello',['param_depr' => '-'],[ 'name' => '\w+' , 'city' => '[A-Za-z]+' ]);
表示只有在该路由规则访问的时候,才使用-作为 url 分隔符。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/766225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX