原文中有介绍到:
===============
上面这个时候,我们如果访问http://blog.dev/user,这是报错的,因为这个路由期望你在后面输入一个变量$name,但是你并没有,所以会报错,我们可以通过可选参数来实现这个目的
可选参数:
Route::get('user/{name?}', function ($name = null) {
return 'Hello '.$name;
});
这个时候,再次访问http://blog.dev/user就不会报错了,但是貌似这个时候只返回了Hello,我们也可以设置一个默认值:
Route::get('user/{name?}', function ($name = 'JellyBool') {
return 'Hello '.$name;
});
这个时候,如果我们没有输入$name这个变量,我们会返回 Hello JellyBool
===============
所以依你的写法,name此时是必要参数,你只是给name了一个默认值,改为“user/{name?}”——加上一个“?”号就好了~~