Saya pikir saya harus mengajukan lebih banyak pertanyaan sebelum memposting jawaban ini, tetapi saya pikir Anda melakukan sesuatu dengan urutan yang salah.
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;
*/
}
Jadi Anda perlu menambahkan groupBy Anda dalam kueri itu sendiri karena itu adalah tindakan kueri yang harus dilakukan SQL Anda. Bagian lainnya adalah ketika Anda mengubahnya menjadi koleksi (yang tidak 100% diperlukan), Anda bisa mengembalikannya. Laravel menangani JSON secara native.