Задать вопрос
@Albert1991

Почему Laravel Eloquent where возвращает ошибку Trying to get property of non-object?

Здравствуйте, подскажите, пожалуйста, почему когда я хочу получить объект таким образом
$book = Book::where('author', $author)->first();
$year = $book->year;

Выходит ошибка "Trying to get property 'year' of non-object"
При этом проверял через dd() в 'author' правильное значение. Далее если сделать так:
$book = Book::where('author', 'Пушкин')->first();
$year = $book->year;

то все отрабатывает нормально.
И еще если в первом случае сделать так:
$book = Book::where('author', $author)->first();
dd($book->year)

то ошибок нет, dd выводит год, но если убрать dd и дальше в коде использовать $book->year, то опять ошибка "Trying to get property 'author' of non-object"

Запутался уже что-то. Может есть какие мысли. Спасибо.
  • Вопрос задан
  • 81 просмотр
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@P747
Провардампьте переменную $book, что выдает запрос
Ответ написан
Комментировать
@nozzy
Symfony, Laravel, SQL, Python, Telegram
Используй firstOrFail()
$book = Book::where('author', $author)->firstOrFail();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы