search

Home  >  Q&A  >  body text

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

我知道可以这样

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

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

Route::get('user/{name}', 'UserController@index');
巴扎黑巴扎黑2902 days ago387

reply all(4)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:08:50

    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;
    });
    

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:08:50

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

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

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:08:50

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

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 15:08:50

    如果

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

    那么在控制器中:

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

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

    reply
    0
  • Cancelreply