使用 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 一样。
我正在尝试制作为我的 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 一样。