我正在使用Laravel 5.5和MySQL 5.7,我有一个表,用于存储两个空间列( POINT 类型)中的原点和目的地的旅行数据。
我试图让这些字段以透明的方式使用Eloquent,我已经管理了如何将经度和纬度转换为模型属性,从数据库中检索数据覆盖我的newQuery()方法型号:
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Travel extends Model
{
public function newQuery()
{
return parent::newQuery()->select('id',
DB::raw('ST_X(origin) AS origin_x,
ST_Y(origin) AS origin_y,
ST_X(destination) AS destination_x,
ST_Y(destination) AS destination_y'));
}
}
现在我想弄清楚如何为新旅行()和 $ travel-> save()做同样的事情,因为我需要insert或update语句总是使用MySQL POINT(x,y)函数。
你对如何以一种好的方式做到了吗?
提前致谢!