[SOLVED] How to add object to existing Laravel Query?


This Content is from Stack Overflow. Question asked by Vincent Dapiton

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','test3' = 'val3','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.


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;

This Question was asked in StackOverflow by Vincent Dapiton and Answered by josedaian It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?