Применяя постгис-запрос в laravel, мы получили ErrorException (E_NOTICE) Array to string string - PullRequest
0 голосов
/ 18 мая 2019

Я хочу сохранить эту переменную в моей базе данных, эта переменная получается в результате выполнения постгис-запроса в laravel, но каждый раз, когда я пытался, я всегда получал ошибку "преобразование массива в строку" .

Что я использовал:

  • 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>

Что нужно сделать, чтобы получить это значение 0101000020E61000000000005E77965B400635AD3816DE1EC0 * 1030 в переменной $

1 Ответ

0 голосов
/ 20 мая 2019

Я думаю, что могу закрыть этот вопрос, потому что теперь я нашел свой ответ, код, который я добавил,

$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, поэтому я не могу ввести его в поле базы данных, и я должен проанализировать его по последнему коду, и да, это работает, спасибо за поддержку

...