我的观看页面包含{{$data->attachment}}
呈现
[{"filename":"hello.jpg", "location":"/home/my_folder"}]
。
我尝试使用
在view
页面中显示文件名
@foreach($data->attachment as $attachment)
$attachment->filename
@endforeach
给了我
为foreach()提供的参数无效
我在尝试
{{$data->attachment->filename}}
给了我
尝试获取非对象的属性
我做错了什么?我该如何显示文件名?感谢。
答案 0 :(得分:1)
正如您在评论中提到的,$data->attachment
的值实际上是一个字符串。为了在循环中迭代它,您需要将其转换回数组。
因此,如果您将循环更改为:
@foreach(json_decode($data->attachment) as $attachment)
{{ $attachment->filename }}
@endforeach
你应该得到你想要的东西。
我想补充一点,转换的正确位置应该在您的控制器中,而不是您的视图。
您的问题并不完全清楚,所以假设您在使用foreach循环时知道自己在做什么,这意味着您实际上在$data->attachment array
中有多个条目。如果它只是一个附件而你真的只是想获取文件名,那么你不需要循环,你只需要说:
{{ json_decode($data->attachment)->filename }}
并且我会再添加一个真正属于你的控制器的所有内容,以便在你的视图中最终得到类似{{ $filename }}