sql >> Databasteknik >  >> RDS >> Mysql

Laravel 5 UnexpectedValueException som svar på fråga på grund av användning av POINT-data

Jag tror att jag borde ställa fler frågor innan jag postar det här svaret, men jag tror att du gör saker i fel ordning.

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

Så du måste lägga till din groupBy i själva frågan eftersom det är en frågeåtgärd som din SQL borde göra. Den andra delen är att när du konverterar den till en samling (vilket inte är 100% nödvändigt) kan du bara returnera den. Laravel hanterar JSON inbyggt.




  1. Filtrera elever som inte har klarat ett ämne ännu

  2. mysql:select max(score) returnerar inte relevant raddata

  3. Tips för att minska din SQL Server-komplexitet

  4. Använda ett IF-uttalande i en MySQL SELECT-fråga