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

如何向已有的Laravel查询结果中添加子对象?

给Laravel查询结果的每个用户添加子对象items

你的代码问题在于循环时错误地给整个用户集合添加items属性,而非每个单独的用户对象。以下是修正后的实现方式:

方法一:foreach循环直接赋值

$users = ModelUser::where('date_created', $date)->get();

foreach ($users as $user) {
    // 直接给每个用户模型实例添加items属性
    $user->items = ['test1'=> 'val1','test2' => 'val2','test3'=>'val3'];
    // 确保JSON返回包含该临时属性
    $user->append('items');
}

return $users;

方法二:使用集合map方法(更优雅)

$users = ModelUser::where('date_created', $date)->get()->map(function ($user) {
    $user->items = ['test1'=> 'val1','test2' => 'val2','test3'=>'val3'];
    $user->append('items');
    return $user;
});

return $users;

全局自动添加属性的方案

若需要所有ModelUser查询结果都自动包含items,可在模型类中配置:

class ModelUser extends Model
{
    protected $appends = ['items'];

    public function getItemsAttribute()
    {
        return ['test1'=> 'val1','test2' => 'val2','test3'=>'val3'];
    }
}

配置后无需手动赋值,查询结果会自动带上items子对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:10:38