如何在Laravel中使用查询插入[空间点]值到MySQL中

7

我有一张表格,其中有一个空间点类型的列,

我想用laravel插入该列的值

如果有查询获取特定范围内的项目怎么办?

这里有帮助吗?

这是我的表:

public function up()
{
    Schema::create('markers', function(Blueprint $table)
    {
        $table->integer('marker_id')->primary();
        $table->string('marker_name', 45);
        $table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
    });
    DB::raw("ALTER TABLE markers ADD COLUMN location POINT");
}

插入单个值?请发布您的表格和代码。 - Deenadhayalan Manoharan
我已经编辑了我的问题,并附上了表格。 - Mahmoud Nassar
有人在这里吗?我需要一个答案。 - Mahmoud Nassar
1个回答

11
您可以按以下方式插入数据:
ModelName::firstOrCreate(
    array(
        ..//other fields
        'location' => DB::raw("(GeomFromText('POINT(37.774929 -122.419415)'))")
    )
);

获取数据的方法:

SELECT X(`location`), Y(`location`) FROM markers;

我也曾陷入这里的困境,得到了帮助:使用 Laravel Eloquent ORM 进行空间点函数。希望这可以帮到你。


顺便提一下,我遇到了“GeomFromText不存在”的错误。所以我不得不将其更改为“ST_GeomFromText”。 - Refilon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接