在laravel中应用postgis查询得到ErrorException(E_NOTICE)数组到字符串转换

时间:2019-05-18 13:56:07

标签: laravel postgis

我想将此变量存储到数据库中,该变量是通过在laravel中执行postgis查询得到的结果,但是每次尝试时,总是出现错误“数组到字符串转换”。。 >

我用的是什么:

  • Laravel v 5.8.17
  • Postgis v 2.5

我已经在数据库中安装了postgis,我可以通过pgadmin进行查询,但是我不知道如何从laravel中进行查询

$longitude = $request->input('longitude');
$latitude = $request->input('latitude');
$topoint = "SELECT ST_GeomFromText('POINT(".$longitude." ".$latitude.")', 4326)";
$res = DB::select(DB::raw($topoint));

在laravel中必须执行什么设置才能应用postgis查询,并且该查询导致了该点的几何?

更新

我试图添加新代码

$resultfromdb = DB::select(DB::raw($topoint));
$geomresult = json_encode($resultfromdb);
$post->apill_geom = $geomresult;

但是它导致了新的错误,是

SQLSTATE [XX000]:内部错误:7错误:解析错误-无效的几何    提示:“ [{” <-解析几何中位置2的错误(SQL:插入到“ e_apill”(“ kode”,“ waktu”,“ desa”,“ kecamatan”,“ kondisi”,“ apill_geom”,“ jenis“,” lokasi“)值(a8a,2019-05-20 04:46:03,?,?,?,[{” st_geomfromtext“:” 0101000020E61000000000005E77965B400635AD3816DE1EC0“}],APILL,?)返回” gid“)< / p>

我该怎么做才能在变量$ geomresult上获得此值0101000020E61000000000005E77965B400635AD3816DE1EC0

1 个答案:

答案 0 :(得分:0)

我想我可以结束这个问题,因为现在我找到了答案,我添加的代码是

$longitude = $request->input('longitude');
$latitude = $request->input('latitude');
$topoint = "SELECT ST_GeomFromText('POINT(".$longitude." ".$latitude.")', 4326)";
$res = DB::select(DB::raw($topoint));
$finalres = $res[0]->st_geomfromtext;

$ res 产生了json数组,所以我无法将其输入数据库字段,并且必须通过最后的代码进行解析,是的,感谢所有支持