我正在开发一个关于Laravel 5.2的项目,我可以在控制器中使用外观(Auth,Request,Cache ..),但不能在任何模型中使用。 这是错误:
FatalErrorException in Post.php line 73:
syntax error, unexpected '(', expecting ',' or ';'
这是第73行:
protected $user = \Auth::user();
答案 0 :(得分:3)
您无法像这样设置类属性的默认值。您可以在下面找到摘自PHP: Properties Documentation:
的摘录此声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,必须不依赖于运行时信息才能进行评估强>
由于Auth::user()
依赖于会话中存储的运行时信息来返回其值,因此您的定义无效。为了克服这个问题,您可以在构造函数中设置默认值,如下所示:
protected $user;
public function __construct()
{
$this->user = \Auth::user();
}