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

Laravel中如何获取对象数组?解决集合与数组合并报错问题

解决Laravel Collection与数组合并的类型错误问题

问题根源

你用WpUser::get()得到的是Eloquent Collection对象,而array_merge()只接受数组类型的参数,所以会触发Argument #2 must be of type array, Illuminate\Database\Eloquent\Collection given的错误。你需要保留对象数组的结构,不能用toArray()(它会把模型转成数组),可以用下面两种方法解决:

方法1:利用Collection的merge方法

Laravel的Collection自带合并能力,先把原有数组转成Collection,合并后再转回对象数组:

// 将$final转为Collection,合并$result后,用all()得到对象数组
$users = collect($final)->merge($result)->all();

方法2:把Collection转为对象数组后再合并

调用Collection的all()方法,直接获取由Eloquent模型对象组成的数组,再用array_merge合并:

// 将Collection转为模型对象数组
$resultArray = $result->all();
// 合并两个对象数组
$users = array_merge($final, $resultArray);

这两种方法都能保留数组中的Eloquent模型对象,不会像toArray()那样把对象转成普通数组。

内容的提问来源于stack exchange,提问作者S.M_Emamian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:55:58