为了账号安全,请及时绑定邮箱和手机立即绑定

测试 name 值 怎么会输出 id 的呢?

https://img1.sycdn.imooc.com//5b9a48770001a2c703780073.jpg开始 name 有默认值 sean  后来改为  kitty  怎么输出的 是 User-id-kitty

正在回答

3 回答

我也奇怪,后来发现是老师前面的id那个路由没注释,实际没测试到name的

0 回复 有任何疑惑可以回复我~

因为路由

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”了


0 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5b9a811a00010aea07750441.jpg

如果id那组路由加上where限制条件,就会走下面,路由从上往下匹配

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

测试 name 值 怎么会输出 id 的呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信