Home > Net >  Add object to Laravel Query
Add object to Laravel Query

Time:09-19

What I want to do is add an object to the existing query.

this is my work in progress right now:

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

foreach($users as $user){
  $obj = ['test1'=> 'val1','test2' => 'val2','test3'=> 'val3',];
  $users['items'] = $obj;
}
return $users;

what I'm hoping is a result is like this.

{"username":'Username1', "Fname":'fname1', "items":['test1' = 'val1','test3' = 'val3','test3' = 'val3']
"username":'Username2', "Fname":'fname2', "items":['test1' = 'val1','test3' = 'val3','test3' = 'val3']
"username":'Username3', "Fname":'fname3', "items":['test1' = 'val1','test3' = 'val3','test3' = 'val3']
"username":'Username4', "Fname":'fname4', "items":['test1' = 'val1','test3' = 'val3','test3' = 'val3']
}

where the items is like in a sub object.

CodePudding user response:

Just to understand a bit more, does the "items" element you want to add to the user object have any relationship at the database level? If so, it would be better to define a relationship within the ModelUser https://laravel.com/docs/9.x/eloquent-relationships#defining-relationships

In case not, I see you're using a $user as an array, but actually $user is a ModelUser element. So a trick, definitely not recommended, would be:

$user->items = $obj;

CodePudding user response:

Convert it into a collection and push into it

https://laravel.com/docs/9.x/collections#method-push

  • Related