考虑以下两条laravel路由指令(我使用的是laravel版本5.0.35,但我在5.5版中发现了相同的行为):
Route::get('/a/b', function(){return "One";});
.
.
.
Route::get('/a/b', function(){return "Two";});我知道它们没有什么意义,但请考虑它们。从理论上讲,优先考虑的是第一个优先于第二个。但如果您访问该站点时
http://whatever.com/a/b
反应是
二
我猜这是因为即使实际选择的指令是第一个指令,第二个也会用返回值覆盖第一个指令。
我的问题是:这是否有意的行为?因为很明显,当您的路由文件中只有两行时,而不是当您有几十行时,您可能无意中重复相同的指令,并认为第一行的返回值是要返回的。
发布于 2017-12-29 10:57:25
,这是预期的行为吗?
是。每当您创建同名路由时,当项目加载时,它将替换路由文件(LIFO法)上的最后一个路由。当我们在项目中添加一些更改时,我们通常运行composer dump-autoload; php artisan route:clear。使用所有这些命令,它会转储所有以前的路由,并将新路由加载到应用程序内存中。
当我做一个项目时,我也有同样的问题。在检查时,我得到了重复的路线名称问题。一旦修好,所有的运行都会顺利。
也要检查这个- 具有相同URL的多条路由,但名称不同
https://stackoverflow.com/questions/48021038
复制相似问题