Как исправить??
Я использую Laravel 5.8 и Linux OS
public function getAverageAttribute()
{
return (int)$this->reviews()->where('user_id', auth()->user()->id)->avg('rating');
}
Попытка получить свойство 'id' не-объекта
2 ответа
Пользователь не аутентифицирован. Сначала вам нужно проверить, вошел ли пользователь в систему или нет. Поскольку auth()->user()
возвращает значение NULL, возникает ошибка, когда вы пытаетесь получить доступ к свойству id
для него.
Сначала проверьте, аутентифицирован ли пользователь или нет:
public function getAverageAttribute()
{
return auth()->user() ? (int)$this->reviews()->where('user_id', auth()->user()->id)->avg('rating') : false;
}
Отладьте свой код, и вы увидите, что не так. E_ERROR замечает, что в вашем случае «пытается получить свойство необъекта», что следующий фрагмент кода возвращает необъектную сущность.
auth()->user()->id
Var_dump этот кусок кода, и проверьте, какой тип на самом деле возвращает.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.