使用 Laravel 的播种以 ST_GEOMFROMTEXT 播种坐标会导致错误

Using Laravel's Seeding to seed coordinates with ST_GEOMFROMTEXT, leads to error

我正在尝试制作为我的 table 播种的播种文件。但问题是一个字段是 POLYGON 的一种,根据 SQL 我必须使用 ST_GEOMFROMTEXT 来插入坐标。

我尝试在没有播种的情况下执行的查询仅使用 SQL

即可完美运行

所以我正在尝试这样:

ST_GEOMFROMTEXT('POLYGON((27.35321 57.515823,27.279053 57.53499399999998,27.349091 57.533151,27.352524 57.51637600000001,27.35321 57.515823))')

但这导致我出错:

Numeric value out of range: 1416 Cannot get geometry object from data you send to the GEOMETRY field

这是函数:

public function run(){
        DB::table('country')->insert([
            'polygon' => "ST_GEOMFROMTEXT('POLYGON((27.35321 57.515823,27.279053 57.53499399999998,27.349091 57.533151,27.352524 57.51637600000001,27.35321 57.515823))')"
        ]);
}

从坐标可以看出,那么起点和终点是同一个。语法也是正确的。所以我不知道,我做错了什么。谁能带我走上正轨?

尝试对 https://laravel.com/docs/5.0/schema#adding-columns

下未列出的内容使用 DB::raw()

https://laravel.com/docs/5.4/database#running-queries

请记住,它会将您的应用程序限制为接受该语法的特定数据库引擎。

理想情况下,您可以使用您的类型扩展语法,并针对您的应用可能 运行 on/tested 的所有数据库引擎修改它,就像用于单元测试的 sqlite 一样。