如何修复?
我使用laravel 5.8和linux操作系统
public function getAverageAttribute()
{
return (int)$this->reviews()->where('user_id', auth()->user()->id)->avg('rating');
}
试图获取非对象的属性“ id”
答案 0 :(得分:0)
调试代码,您会发现问题出在哪里。 E_ERROR注意,在您的情况下,是“试图获取非对象的属性”,以下代码返回非对象实体。
auth()->user()->id
var_dump这段代码,并检查实际返回的类型。
答案 1 :(得分:0)
用户未通过身份验证。您将必须首先检查用户是否登录。由于auth()->user()
返回null,因此,当您尝试访问其上的id
属性时,将引发错误。
首先检查用户是否已通过身份验证:
public function getAverageAttribute()
{
return auth()->user() ? (int)$this->reviews()->where('user_id', auth()->user()->id)->avg('rating') : false;
}