laravel 记录开发过程一个路由问题(参数正则限制)

背景:用户个人资料页(其他用户可查看)和个人中心页路由问题#

(写在前面:可能是我菜,大佬们轻喷)

记录开发过程一个路由问题

Route::get('/user/info', 'UsersController@userInfo');

Route::get('/user/{id}', 'UsersController@userHome');

顺位之后

/user/info 路由会调起 userHome 方法

本作品采用《CC 协议》,转载必须注明作者和本文链接
it_cwc
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

我也遇到过类似的场景,这个顺位问题是可以通过路由的正则约束功能规避的。

文档指路:路由《Laravel 5.5 中文文档》

深入一下的话,如果顺位的前一个是个资源路由,在 PUT DELETE 这种资源后面拼 id 的情况我就不知道怎么避免了,粗暴的解决的话改顺位或者换路由......

4年前 评论
jcc123

我这样规避的

/user/{id}/show
4年前 评论

laravel 的路由文件是根据正则从上往下走的,这两个的路由正则是一样的,因此那个在前走那个,解决办法有两个 调换路由顺序,或者给 id 的这个路由添加路由正则

4年前 评论

@Molin 找到了,谢大佬指点

file

Route::resource('users', 'UsersController'); 一般我很少用到资源路由了 :speak_no_evil:

4年前 评论

后面加上限制条件,id 只能为 int

4年前 评论

Route::get ('/user/{id}', 'UsersController@userHome'); 写到前面

4年前 评论

大佬大佬,学到了 :heart:

4年前 评论
颠倒的玉石

加个正则什么的或者在家一个参数,{id} 对程序来说 id 只是一个变量的名字,可以使数字也可以是字符串 info。下面的肯定会覆盖上面的。

4年前 评论