我正在学习如何在Laravel中使用Redis,并发现了一个奇怪的东西:
当上述路线articles/trending
上的路线articles/{article}
正常时,路线article/trending
可以正常工作:
My Router code picture
当articles/{article}
上方articles/trending
时,找不到路由articles/trending
吗?
谁能告诉我原因?并非常感谢您!
答案 0 :(得分:1)
因为路径中的{article}
语句只不过是一个占位符。
如果您输入
Route::get('articles/{article}')
具有其他结构的其他路线
Route::get('articles/...')
然后{article}
语句将捕获您放在/
之后的所有内容。
这是因为Laravel的路由器(以及AFAIK,无论使用哪种语言或框架,每个路由器)都在URL和定义的路由之间寻求第一个可能的匹配。
{article}
是一个占位符,如果首先定义,将始终是第一个可能的匹配项。