sql >> Base de Datos >  >> RDS >> Mysql

Laravel 5 UnexpectedValueException en respuesta a la consulta debido al uso de datos POINT

Creo que debería hacer más preguntas antes de publicar esta respuesta, pero creo que estás haciendo las cosas en el orden incorrecto.

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

Por lo tanto, debe agregar su groupBy en la consulta en sí porque esa es una acción de consulta que su SQL debería estar haciendo. La otra parte es que cuando lo conviertes en una colección (que no es 100% necesario) puedes devolverlo. Laravel maneja el JSON de forma nativa.