Ik denk dat ik meer vragen moet stellen voordat ik dit antwoord post, maar ik denk dat je de dingen in de verkeerde volgorde doet.
public function rentals($id)
{
// Retrieve all rentals within a region and the locations spatial data
$rentals = DB::table('rentals')
->join('regions', 'rentals.region_id', '=', 'regions.id')
->join('rental_locations', 'rentals.rental_location_id', '=', 'rental_locations.id')
->select('*')
->where('rentals.region_id', '=', $id)
->groupBy('rental_location_id')
->get();
return collect($rentals); // or return $rentals
/* Not necessary
// Create a collection from the array of query results
$rentals = collect($rentals);
// Laravel is set up to return collections as json when directly returned
return $rentals;
*/
}
U moet dus uw groupBy in de query zelf toevoegen, want dat is een queryactie die uw SQL zou moeten doen. Het andere deel is dat wanneer je het omzet naar een verzameling (wat niet 100% nodig is), je het gewoon kunt retourneren. Laravel verwerkt de JSON native.