Ich benutze PostgreSQL + PostGIS Setup, und ich möchte geom
Spalte aus der Datenbank als GeoJSON abrufen. Ich weiß, dass ich das mit ST_AsGeoJSON()
Funktion tun kann. So verwende ich diesen Code alle Länder zu holen:Laravels eloquente Nachbearbeitungsabfrage
$countries = Country::select(["id", "name", DB::raw("ST_AsGeoJSON(geom) AS geom")])->get()
Aber ich am Ende mit $countries[i]->geom
ein String ist, so muss ich für Schleife, dies zu tun:
$countries[i]->geom = json_decode($countries[i]->geom);
I Ich möchte diese Codezeile in das Eloquent-Modell verschieben, damit ich mir keine Sorgen machen muss, wenn ich die Spalte entziffern möchte oder nicht. Gibt es eine Methode, die ich überschreiben oder irgendeine Art, diese spezielle Funktionalität meinem Ländermodell hinzuzufügen?
Ich benutze die 5.1 LTS-Version, aber das funktioniert, auch wenn man "geom" => "json" macht. Aber, ich habe Laravel-Code überprüft, es tatsächlich 'json_decode()' jedes Mal wenn ich nach diesem Attribut frage ... Antwort von Oseintow ist gut, wenn ich mich an decodierten Wert erinnere. – clzola