laravel 路由参数的默认值怎么设置?

我知道可以这样

Route::get('user/{name}', function($name = 'John'){ });

但是使用到控制器的时候怎么设置?
比如:

Route::get('user/{name}', 'UserController@index');
阅读 11.1k
4 个回答
Route::get('user/{name?}', 'UserController@index');

//UserController.php
public function index($name = 'Default Value')
{
    return $name;
}

文档里写的很清楚啊。

另外closure 和 action 没有区别

Route::get('user/{name?}', function($name = 'John')
{
    return $name;
});

不太明白控制器什么什么的,不过猜测肯定应该是一个类,如果是要使用类内函数的话可以使用array('类名', '方法名')调用,大概如下:

Route::get('user/{name}', array('UserController', 'index'));

那就在index中使用默认参数啊

如果

//routes.php
Route::get('user/{name}', 'UserController@index');

那么在控制器中:

//UserController.php
public function index($name)
{
    echo $name;
}

注意,这个时候你设置 $name = xxx 是没有意义的,因为$name不可能为空,直接访问 /user 的话,是一个未定义的路由。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏