Как исправить??

Я использую Laravel 5.8 и Linux OS

public function getAverageAttribute()
{
    return (int)$this->reviews()->where('user_id', auth()->user()->id)->avg('rating');
}

Попытка получить свойство 'id' не-объекта

-1
Muhammad Faris Adi Prabowo 15 Авг 2019 в 06:34

2 ответа

Лучший ответ

Пользователь не аутентифицирован. Сначала вам нужно проверить, вошел ли пользователь в систему или нет. Поскольку auth()->user() возвращает значение NULL, возникает ошибка, когда вы пытаетесь получить доступ к свойству id для него.

Сначала проверьте, аутентифицирован ли пользователь или нет:

public function getAverageAttribute()
{
    return auth()->user() ? (int)$this->reviews()->where('user_id', auth()->user()->id)->avg('rating') : false;
}
0
Rehmat 15 Авг 2019 в 04:17

Отладьте свой код, и вы увидите, что не так. E_ERROR замечает, что в вашем случае «пытается получить свойство необъекта», что следующий фрагмент кода возвращает необъектную сущность.

auth()->user()->id

Var_dump этот кусок кода, и проверьте, какой тип на самом деле возвращает.

0
Mully 15 Авг 2019 в 03:45