【问题标题】:PostGIS functions in Laravel queriesLaravel 查询中的 PostGIS 函数
【发布时间】:2019-02-25 02:02:47
【问题描述】:

我通常使用 MySQL,所以 PostgreSQL 对我来说是一个新事物

我正在尝试在我的查询中使用 PostGIS,

SELECT ST_X(g.geomout), ST_Y(g.geomout) FROM geocode('?', 1) as g

如果我在终端中运行查询,它应该可以正常工作,但不是从 Laravel 中运行

在 Laravel 中我使用 \DB::connection('pgsql')->select(...,但找不到 geocode 函数

SQLSTATE[42883]:未定义函数:7 错误:函数 地理编码(未知,整数)不存在
第 1 行:从地理编码('?', 1)... 提示:没有函数匹配给定的名称和参数类型。你 可能需要添加显式类型转换。 (SQL:选择 ST_X(g.geomout), ST_Y(g.geomout) FROM geocode('54 North Winter Street Columbus, OH, 43015', 1) As g)

SQLSTATE[42883]:未定义函数:7 错误:函数 地理编码(未知,整数)不存在
第 1 行:从地理编码('?', 1)... 提示:没有函数匹配给定的名称和参数 类型。您可能需要添加显式类型转换。

但此查询在终端中运行良好

SELECT ST_X(g.geomout), ST_Y(g.geomout)
FROM geocode('54 North Winter Street Columbus, OH, 43015', 1) As g

如果我运行,PostGIS 扩展已启用:

\DB::connection('pgsql')->select("SELECT postgis_full_version()")

我会得到带有版本信息的结果

search_path 设置为"$user", public, postgis,原来是"$user", public,没有任何变化

我也试过用public.geocodeUnable to call postgres & postgis function in query builder laravel 4),结果一样

更新:

我有tiger_geocoder扩展,geocode在那里定义,我需要使用tiger.geocode,但是ST_X/ST_Y会失败,因为它们是在public中定义的

最终查询看起来像SELECT public.ST_X(g.geomout), public.ST_Y(g.geomout) FROM tiger.geocode(?, 1) As g

但现在我明白了:

SQLSTATE[42883]:未定义函数:7 错误:函数 soundex(未知) 不存在

如何在单个架构上定义所有这些函数?

更新 2:

这就是问题所在,search_path 用于 Laravel 中的连接没有所有这些信息,它设置为 public,即使我有所有模式的路径,如果我访问 postgresql search_path 设置为 @987654340 @。我如何使它成为全球性的?

【问题讨论】:

    标签: laravel postgresql postgis


    【解决方案1】:

    您应该将tiger 添加到您的搜索路径中。无需限定每个函数,它们可以位于不同的架构中……只要这些架构在搜索路径中!

    【讨论】:

    • 好的,这就是问题所在,search_path 用于 Laravel 中的连接没有所有这些信息,它设置为 public,即使如果我访问 postgresql @ 时我有所有模式的路径987654324@ 设置为"$user", public, tiger, postgis。我如何使它成为全球性的?
    【解决方案2】:

    好的,对于database.php 中的 Laravel,需要将 schema 添加为数组,例如'schema' => ['$user', 'public','postgis','tiger'],

    【讨论】:

      猜你喜欢
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 2017-08-12
      • 2021-05-19
      相关资源
      最近更新 更多