Laravel中如何在foreach循环内获取数组元素 解决Blade取值报错问题
报错原因
$post['tags']是包含多个标签模型的集合对象,不是单条标签数据,所以直接调用->slug属性无法正常取值。你之前调用pluck('slug')是从整个集合中提取所有slug字段的值,得到的就是你看到的包含多个slug的数组格式结果。
正确遍历写法
你可以选择以下两种常用写法实现取值:
- 直接遍历原标签集合,按需取单个标签的字段
@foreach($post['tags'] as $tag) <!-- 这里可以取当前标签的任意字段 --> {{ $tag->slug }} {{ $tag->name }} @endforeach
- 如果你只需要用到slug字段,可以先提取再遍历
@foreach($post['tags']->pluck('slug') as $slug) {{ $slug }} @endforeach
可选优化
如果需要处理标签为空的场景,推荐使用@forelse语法:
@forelse($post['tags'] as $tag) {{ $tag->slug }} @empty 该文章暂无标签 @endforelse
内容的提问来源于stack exchange,提问作者moreshwar pantwalavalkar
相关产品推荐
相关产品推荐

