【问题标题】:Applying postgis query in laravel got ErrorException (E_NOTICE) Array to string conversion在 laravel 中应用 postgis 查询得到 ErrorException (E_NOTICE) 数组到字符串的转换
【发布时间】:2019-10-05 13:34:45
【问题描述】:

我想把这个变量存到我的数据库中,这个变量是通过在 laravel 中做 postgis 查询得到的,但是每次我尝试,我总是得到错误 “数组到字符串转换”。 p>

我用的是什么:

  • 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 查询,并且该查询导致了该点的 geom?

更新

我已尝试添加新代码

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

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

SQLSTATE[XX000]:内部错误:7 错误:解析错误 - 无效几何 提示:“[{”

我必须做什么才能在变量 $geomresult 上获得这个值 0101000020E61000000000005E77965B400635AD3816DE1EC0

【问题讨论】:

    标签: laravel postgis


    【解决方案1】:

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

    $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数组,所以无法输入到数据库字段,必须通过最后的代码解析,是的,成功了,感谢大家的支持

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2018-03-13
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多