Php Laravel DD打印右变量,但';非对象';
我在使用laravel时遇到了一个奇怪的错误。所以基本上当我称之为Php Laravel DD打印右变量,但';非对象';,php,laravel,eloquent,Php,Laravel,Eloquent,我在使用laravel时遇到了一个奇怪的错误。所以基本上当我称之为 {{ $product->images()->first()->fileName }} 我得到以下错误 Trying to get property 'fileName' of non-object 然而,当我在dd中调用它时,它显示变量fine @dd($product->images()->first()->fileName); 所以我不确定“图像”是否与hasMany的召回产品有
{{ $product->images()->first()->fileName }}
我得到以下错误
Trying to get property 'fileName' of non-object
然而,当我在dd中调用它时,它显示变量fine
@dd($product->images()->first()->fileName);
所以我不确定“图像”是否与hasMany的召回产品有关。我很想知道这里发生了什么 这是一个简单但不一定理想的解决方案:
@php $image = $product->images()->first(); @endphp
@if($image)
<img src="{{ $image->fileName }}"/>
@endif
@php$image=$product->images()->first()@endphp
@如果($image)
文件名}}”/>
@恩迪夫
由于您正在迭代产品,因此其中一个产品不能有图像
在不改变代码的情况下,只需在语句前添加一个@
{{ @$product->images()->first()->fileName }}
这将自动处理错误并返回null。因此,您的程序不会崩溃
参见请发布查看代码,没有上下文确实很难理解ondd()的内容将在第一次执行时停止。您可能正在迭代产品,其中一个产品没有image@KurtFriars就是这样!谢谢你,如果刀片中没有返回任何内容的话,还有其他方法吗?@VSLover333你可以尝试下面我的答案。这是一个非常酷的答案,我不知道@operator。但我假设我发现更好的方法是@if(isset($product->images()->first()->fileName)){{{$product->images()->first()->fileName}}@endif