Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays laravelblade中的数组解析_Arrays_Laravel_Blade - Fatal编程技术网

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数据。因此,尝试以下方法可能会有所帮助:在你看来