在模型问题中使用外观

时间:2016-02-22 16:39:32

标签: laravel exception model

我正在开发一个关于Laravel 5.2的项目,我可以在控制器中使用外观(Auth,Request,Cache ..),但不能在任何模型中使用。 这是错误:

 FatalErrorException in Post.php line 73:
   syntax error, unexpected '(', expecting ',' or ';'

这是第73行:

 protected $user = \Auth::user();

1 个答案:

答案 0 :(得分:3)

您无法像这样设置类属性的默认值。您可以在下面找到摘自PHP: Properties Documentation

的摘录
  

此声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,必须不依赖于运行时信息才能进行评估

由于Auth::user()依赖于会话中存储的运行时信息来返回其值,因此您的定义无效。为了克服这个问题,您可以在构造函数中设置默认值,如下所示:

protected $user;

public function __construct()
{
    $this->user = \Auth::user();
}