Rick
Rick

Reputation: 541

Laravel Collection Loop to another Collection

How to loop the eloquent collection from one to another? I'm just getting first line of array. I have more than 4 array in the collection.

$queries = Students::where('year',"=", 1)->get();
$students = new Students();
foreach ($queries as $query) {
    $students->name = $query->name;
    $students->faculty = $query->faculty ."Add something";
    $students->year = $query->year;
}
dd($students);

Upvotes: 2

Views: 1468

Answers (2)

Sohel0415
Sohel0415

Reputation: 9873

You could use map() to modify collection-

$queries = $queries->map(function($query){
        $query->faculty = $query->faculty."kfjhgli";
        return $query;
    });
return $queries;

Upvotes: 3

Alexey Mezenin
Alexey Mezenin

Reputation: 163978

I want to change the collection a bit before I print to json. For example, I want add something behind the faculty

Use the transform() method to modify collection:

$students = Students::where('year', 1)->get();
$students->transform(function($i) {
    $i->faculty = $i->faculty . 'add something';
    return $i;
});

You also can use resource classes to transform the data before returning JSON response.

Upvotes: 4

Related Questions