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

Laravel 8 使用pluck拼接关联表media与Users表字段的问题

Laravel 8 关联字段拼接为数组键的实现方法

正确代码

$user = Users::with('media')
    ->get()
    ->mapWithKeys(function ($item) {
        // 若media为一对多关联,可根据需求调整为 $item->media->first()->title
        $concatKey = $item->media->title . ' + ' . $item->name;
        return [$concatKey => $item->id];
    })
    ->all();

实现逻辑说明

  • 原有pluck方法仅支持直接提取模型已有属性作为键、值,无法满足自定义字段拼接的需求,替换为集合的mapWithKeys方法即可自定义返回数组的键值规则,最终输出格式和预期一致
  • 若media为一对多关联(单个用户对应多条媒体记录),需要先明确取哪条媒体的title字段,避免关联属性为空时报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:48:00