Arrays laravelblade中的数组解析
我的查看页面由Arrays laravelblade中的数组解析,arrays,laravel,blade,Arrays,Laravel,Blade,我的查看页面由{{{$data->attachment}}组成,其中 [{“文件名”:“hello.jpg”,“位置”:“/home/my_folder”}] 在这里,我尝试使用 @foreach($data->attachment as $attachment) $attachment->filename @endforeach 这让我 为foreach()提供的参数无效 我在努力 {{$data->attachment->filename} 这让我 正在尝试获取非对象的属
{{{$data->attachment}}
组成,其中
[{“文件名”:“hello.jpg”,“位置”:“/home/my_folder”}]
在这里,我尝试使用
@foreach($data->attachment as $attachment)
$attachment->filename
@endforeach
这让我
为foreach()提供的参数无效
我在努力
{{$data->attachment->filename}
这让我
正在尝试获取非对象的属性
我做错了什么?如何显示文件名?谢谢。正如您在评论中提到的,
$data->attachment
的值实际上是一个字符串。为了在循环中对其进行迭代,需要将其转换回数组
因此,如果将循环更改为:
@foreach(json_decode($data->attachment) as $attachment)
{{ $attachment->filename }}
@endforeach
你应该得到你想要的
我想补充一点,这种转换的正确位置应该在控制器中,而不是视图中
您的问题并不完全清楚,所以这都是假设您知道使用foreach循环时正在做什么,这意味着您在$data->attachment数组中实际上有多个条目。如果它只是一个附件,而您实际上只是想获取文件名,那么您不需要循环,只需说:
{{ json_decode($data->attachment)->filename }}
再一次,我要补充的是,所有的东西都属于你的控制器,这样在你的视图中,你会得到类似于{{$filename}
try by$attachment=$data->attachment->toArray()的东西
并传递此$attachment
变量以查看和迭代foreach
循环。当您进行var\u转储($data->attachment)时,您会得到什么?正如问题[{“filename:”hello.jpg“,”location:“/home/my\u folder”}
中所述,这不是var\u转储,我想说的是,它是以字符串的形式回送出来的,还是一个对象,仍然允许您在视图中使用此方法。实际上,foreach
需要数组或对象进行迭代,但您有JSON数据。因此,尝试以下方法可能会有所帮助:在你看来