Laravel DD печатает правую переменную, но «не объект» - PullRequest
0 голосов
/ 02 августа 2020

Я обнаружил странную ошибку при использовании laravel. По сути, когда я вызываю это

{{ $product->images()->first()->fileName }}

, я получаю следующую ошибку:

Trying to get property 'fileName' of non-object 

Однако, когда я вызываю его в dd, он показывает переменную нормально ...

@dd($product->images()->first()->fileName);

Так что я не совсем уверен, что случилось, «изображения» связаны с вызовом hasMany в продукте. Хотел бы получить совет о том, что здесь происходит!

Ответы [ 2 ]

0 голосов
/ 02 августа 2020

Поскольку вы перебираете продукты, у одного из продуктов не должно быть изображения.

Без особых изменений кода просто добавьте @ перед оператором

{{ @$product->images()->first()->fileName }}

Это автоматически обработает ошибку и вернет null. Итак, ваша программа не будет сканировать sh.

См. PHP Операторы контроля ошибок

0 голосов
/ 02 августа 2020

Это простое, но не обязательно идеальное решение:

@php $image = $product->images()->first(); @endphp 
@if($image)
<img src="{{ $image->fileName }}"/>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...