测试 name 值 怎么会输出 id 的呢?
开始 name 有默认值 sean 后来改为 kitty 怎么输出的 是 User-id-kitty
开始 name 有默认值 sean 后来改为 kitty 怎么输出的 是 User-id-kitty
2018-09-13
因为路由
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”了
举报