Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel DD打印右变量,但';非对象';_Php_Laravel_Eloquent - Fatal编程技术网

Php Laravel DD打印右变量,但';非对象';

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的召回产品有

我在使用laravel时遇到了一个奇怪的错误。所以基本上当我称之为

{{ $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