Laravel Postgis query werkt niet

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Tsjilp
  • Registratie: November 2002
  • Niet online
Ik probeer in laravel (9) de volgende query op een postgres database uit te voeren:
code:
1
select * from "photos" where "location" && st_makeenvelope(2.6576374457007708,50.67891976112179,7.6277165460462575,52.5978158533737)

Wanneer ik deze query in DBeaver draai krijg ik netjes resultaat, ook als ik de query via DB::Select / DB::Raw draai:
code:
1
DB::select(DB::raw('select * from "photos" where "location" && st_makeenvelope(2.6576374457007708,50.67891976112179,7.6277165460462575,52.5978158533737)'));

krijg ik resultaat. Echter als ik hem op deze manier probeer te draaien:
code:
1
Photo::whereRaw('"location" && st_makeenvelope(?)',$request->get('bbox'))->get()

Krijg ik:
SQLSTATE[42883]: Undefined function: 7 ERROR: function st_makeenvelope(unknown) does not exist LINE 1: select * from "photos" where "location" && st_makeenvelope($... ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select * from "photos" where "location" && st_makeenvelope(2.6576374457007708,50.67891976112179,7.6277165460462575,52.5978158533737)
Ik heb postgis toegevoegd als schema in database.php zoals gesuggereerd in https://stackoverflow.com/a/52446997/4111346, mocht helaas niet baten.

Raar... Is zo gek nog niet

Alle reacties


Acties:
  • +2 Henk 'm!

  • Tsjilp
  • Registratie: November 2002
  • Niet online
Om mijn eigen vraag te beantwoorden: st_makeenvelope verwacht minimaal 4 argumenten, (die zitten allemaal in de bbox string), dus de volgende constructie werkt wel:
code:
1
Photo::whereRaw('"location" && st_makeenvelope(?,?,?,?)',explode(',',$request->get('bbox')))->get();

Raar... Is zo gek nog niet