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

Laravel中无需循环获取多对多关联集合值并去掉数组括号引号的方法

实现方案

你可以直接调用Laravel集合内置的implode()方法完成需求,全程无需循环,仅需一行代码:

// 直接对关联返回的集合做拼接,分隔符可自定义
$hotel->services->pluck('name')->implode('、')

原理解释

  • 你原有代码返回的是服务名组成的Laravel Collection对象,直接输出时会自动序列化为JSON数组格式,所以会携带方括号、引号等符号
  • implode()方法会将集合内的所有元素按你指定的分隔符拼接为纯字符串,上述示例用中文顿号作为分隔符时,你的示例输入会返回Free Wi-Fi、Free Parking,无任何多余符号。如果需要用英文逗号、空格等作为分隔符,仅需要替换implode()的参数即可,比如用implode(', ')即可得到Free Wi-Fi, Free Parking的效果。

高性能优化方案

如果不需要加载服务的其他字段,还可以直接在关联查询阶段完成拼接,减少IO开销,同样是一行代码:

// 直接在关联查询构造器上调用implode,无需加载完整服务模型
$hotel->services()->implode('name', '、')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:57:01