Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel 5 UnexpectedValueException en réponse à une requête due à l'utilisation de données POINT

Je pense que je devrais poser plus de questions avant de poster cette réponse, mais je pense que vous faites les choses dans le mauvais ordre.

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;
*/
}

Vous devez donc ajouter votre groupBy dans la requête elle-même, car il s'agit d'une action de requête que votre SQL devrait effectuer. L'autre partie est que lorsque vous le convertissez en une collection (ce qui n'est pas nécessaire à 100 %), vous pouvez simplement le renvoyer. Laravel gère nativement le JSON.