路由定义了却 Page Not Found,注释掉 show 才可以?

Route::get('/users/{user}', 'UsersController@show')->name('users.show');    //展示某个用户
Route::get('/users/create', 'UsersController@create')->name('users.create');    //用户注册页面

按以上定义路由时,响应 Page Not Found
file

//Route::get('/users/{user}', 'UsersController@show')->name('users.show');  //展示某个用户
Route::get('/users/create', 'UsersController@create')->name('users.create');    //用户注册页面

注释掉 user.show 后响应正常
file

何解?是把 sample.test/users/create 定向到 /users/{user} 了吗?

附言 1  ·  7年前

PS: 用 resource 快速绑定路由也是正常的

附言 2  ·  7年前

PPS: 请求的确是到 /users/{user} 去了;将两条绑定路由的代码上下调换位置后请求也是正常的,这是不是框架的一个小 bug?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
leo
最佳答案

@阿伦 路由是根据定义的顺序来匹配的,遇到第一个匹配的路由就返回,有歧义的路由要先定义

7年前 评论
讨论数量: 4
leo

路由顺序对调一下就行了,别动不动就框架 Bug

7年前 评论

@leo 我知道对调顺序可以解决,但是按原来的顺序定义路由就是不行,我只是疑惑 resource 拆开来必须按照这样的顺序来写是 bug 还是约定俗成的。

7年前 评论
leo

@阿伦 路由是根据定义的顺序来匹配的,遇到第一个匹配的路由就返回,有歧义的路由要先定义

7年前 评论

@leo 谢谢,这个答案就比上一条有用多了

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!