在laravel刀片中解析数组

时间:2016-03-10 04:32:48

标签: arrays laravel blade

我的观看页面包含{{$data->attachment}}呈现

[{"filename":"hello.jpg", "location":"/home/my_folder"}]

我尝试使用

view页面中显示文件名
@foreach($data->attachment as $attachment)
   $attachment->filename
@endforeach

给了我

  

为foreach()提供的参数无效

我在尝试

{{$data->attachment->filename}}

给了我

  

尝试获取非对象的属性

我做错了什么?我该如何显示文件名?感谢。

1 个答案:

答案 0 :(得分:1)

正如您在评论中提到的,$data->attachment的值实际上是一个字符串。为了在循环中迭代它,您需要将其转换回数组。

因此,如果您将循环更改为:

@foreach(json_decode($data->attachment) as $attachment)
   {{ $attachment->filename }}
@endforeach

你应该得到你想要的东西。

我想补充一点,转换的正确位置应该在您的控制器中,而不是您的视图。

您的问题并不完全清楚,所以假设您在使用foreach循环时知道自己在做什么,这意味着您实际上在$data->attachment array中有多个条目。如果它只是一个附件而你真的只是想获取文件名,那么你不需要循环,你只需要说:

{{ json_decode($data->attachment)->filename }}

并且我会再添加一个真正属于你的控制器的所有内容,以便在你的视图中最终得到类似{{ $filename }}

的内容