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

Laravel开发:如何将对象数组集合转换为属性数组集合

解决Laravel Collection从对象数组转为属性数组的问题

看起来你现在拿到的是包含User模型对象的Collection,但需要把每个元素转换成对应的属性数组对吧?这在Laravel里其实有几种很方便的实现方式,我给你列出来:

方法一:使用map+toArray()(通用场景)

如果需要的是模型的完整属性数组(包含模型允许输出的所有属性,会自动排除hidden里的字段),可以用map配合模型的toArray()方法:

// 匿名函数写法(兼容PHP版本较低的情况)
$users = $users->map(function ($user) {
    return $user->toArray();
});

// PHP 7.4+ 箭头函数更简洁
$users = $users->map(fn($user) => $user->toArray());

方法二:直接获取模型的原始属性数组

如果你需要的是和dd输出里看到的#attributes完全一致的数组(包含所有数据库字段,不受hidden/visible设置影响),可以用模型的getAttributes()方法:

$users = $users->map(fn($user) => $user->getAttributes());

方法三:自定义需要的属性数组

如果只需要特定的几个属性,而不是全部,直接在map里手动构造数组即可:

$users = $users->map(function ($user) {
    return [
        'id' => $user->id,
        'ua_id' => $user->ua_id,
        'grade_id' => $user->grade_id
        // 这里可以添加你需要的其他属性
    ];
});

这些方法都会返回一个新的Collection,每个元素都是你想要的属性数组,完全替代原来的对象数组结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:49:28