路由定义了却 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  ·  5年前

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

附言 2  ·  5年前

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案

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

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

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

5年前 评论

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

5年前 评论
leo

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

5年前 评论

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

5年前 评论

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