问答详情
源自:3-1 路由

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

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

提问者:Y丶先森 2018-09-13 19:23

个回答

  • YiWeiLan
    2020-06-16 22:02:57

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

  • QAQ公子敢言
    2020-05-21 17:24:59

    因为路由

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


  • 阿巴斯
    2018-09-13 23:25:27

    https://img3.mukewang.com/5b9a811a00010aea07750441.jpg

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