我想将此变量存储到数据库中,该变量是通过在laravel中执行postgis查询得到的结果,但是每次尝试时,总是出现错误“数组到字符串转换”。。 >
我用的是什么:
我已经在数据库中安装了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
答案 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数组,所以我无法将其输入数据库字段,并且必须通过最后的代码进行解析,是的,感谢所有支持