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
相关产品推荐
相关产品推荐

