Y丶先森
2018-09-13 19:23
开始 name 有默认值 sean 后来改为 kitty 怎么输出的 是 User-id-kitty
我也奇怪,后来发现是老师前面的id那个路由没注释,实际没测试到name的
因为路由
Route::get("user/{id}", function ($id) ...
写在
Route::get("user/{name?}", function ($name = "Sean") ...
的前面,
且,
路由都是同一个路径public/user,
而,
Route::get("user/{id}", function ($id)
并没有对参数进行限制,
因此,
这里{id}是一个可以匹配任意字符的参数,不仅仅是匹配数字。
如果你给前面的路由加个限定,比如:
Route::get("user/{id}", function ($id) { return "id = " . $id; })->where("id","[0-9]+");
那么,这个{id}就不会去匹配你的 “Kitty”了
如果id那组路由加上where限制条件,就会走下面,路由从上往下匹配
轻松学会Laravel-基础篇
64170 学习 · 281 问题
相似问题