laravel 背包 postgis 几何领域
Posted
技术标签:
【中文标题】laravel 背包 postgis 几何领域【英文标题】:laravel backpack postgis geometry field 【发布时间】:2021-04-25 18:21:47 【问题描述】:我正在尝试创建一个 POSGIS Laravel Backpack CRUD,并且我生成了模型和控制器。 我有一个带有 geom 、 name 、 address 列的模型位置,我正在尝试手动将一个值插入数据库。
功能性 postgis 插入应该是这样的:
insert into locations (geom, name , address) values (st_geomfromtext('POINT(731948.274744 424549.929507)', 3844), 'test' , 'test navicat')
我试图应用于 geom 字段的手动值是这样的
$this->crud->addField([
'name' => 'geom',
'type' => 'hidden',
'value' => \DB::raw("st_geomfromtext('POINT(731948.274744 424549.929507)'), 3844)")
]);
但是sql错误是
SQLSTATE[XX000]: Internal error: 7 ERROR: parse error - invalid geometry HINT: "st" <-- parse error at position 2 within geometry (SQL: insert into "locations" ("name", "address", "geom", "updated_at", "created_at") values (t, t, st_geomfromtext('POINT(731948.274744 424549.929507)'), 3844), 2021-01-21 10:29:15, 2021-01-21 10:29:15) returning "id")
我无法弄清楚我该如何解决这个问题 提前谢谢你
【问题讨论】:
你在用mysql吗?如果属实,什么版本? 嗯,看到您为此使用value
参数有点奇怪。您是否也可以在模型本身内部使用 Laravel Mutator 来执行此操作?laravel.com/docs/8.x/eloquent-mutators#defining-a-mutator
我在创建时通过模型事件解决了模型内部的问题 static::creating(function ($questionnaire) // 相同的代码 );
【参考方案1】:
我在创建 postgis 条目时解决了模型内的事件问题
static::creating(function ($questionnaire)
// Same code here
);
【讨论】:
以上是关于laravel 背包 postgis 几何领域的主要内容,如果未能解决你的问题,请参考以下文章
jetbrains datagrip 中是不是有 postgis 几何查看器?