You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel数组数据传Blade仅显示最后一条及歌手去重问题

问题修复方案

问题根因

  • 循环逻辑中每次遍历都会覆盖$singers变量,循环执行完成后变量仅保存最后一次遍历得到的歌手数组,因此模板中只能渲染最后一条记录的歌手信息
  • 未对多轮查询拿到的歌手数据做合并、去重处理,存在重复名称

修正后控制器代码

// 初始化空数组存储全部歌手名称
$singers = [];
foreach ($tracks as $key => $track) {
    // 查询当前曲目关联的歌手,注意变量名不要和总歌手数组重名避免覆盖
    $currentTrackSingers = Singers::whereIn('id', $track->singers_id)
        ->pluck('singers_name')
        ->toArray();
    // 将当前曲目歌手合并到总歌手数组
    $singers = array_merge($singers, $currentTrackSingers);
}
// 对总歌手数组去重,并重排索引
$singers = array_values(array_unique($singers));

// 传递变量到模板
return view('对应模板路径', compact('singers'));

Blade模板代码

模板原有逻辑无需调整,直接使用处理后的数组拼接即可:

{{ implode(' & ', $singers) }}

最终效果

针对给出的测试数据,最终渲染结果为:

Norman & vicky & Ella Mai

重复的歌手名称自动去重,所有关联歌手都会正常展示。

内容的提问来源于stack exchange,提问作者Kloud oZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 22:54:28