mardi 5 janvier 2016

Push an array into Laravel collection with matching keys

I have a laravel collection called $users. And then I also have an array that contains last 2 posts of each user. The collection contains an id field and the array contains user_id so that it can be matched up together.

How can I push this additional data into the collection. I want it to be accessible such as $users->posts so I would be able to have $users->posts[0] and $users->posts[1] for each user provided that there was a post for that user in the original array.

This is code I have so far:

foreach ($users as $user) {
    foreach ($posts as $post) {
        if ($post->user_id == $user->id) {
            $user->posts->push($post);
        }
    }
}

And that kinda sorta works, but not really because it pulls in the relations from the User model that's called posts and is a hasMany relation to the User.

$posts array:

enter image description here

$users collection:

enter image description here

And here's how the result looks like. You can see the first 4 items are actually the relation that are pulled in automatically when I call $user->posts and the next 2 are the ones I inserted. I wouldn't want to pull the first 4 in since that defeats the purpose of me inserting them manually.

enter image description here



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/1mElxNY
via IFTTT

Aucun commentaire:

Enregistrer un commentaire