You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Eloquent查询中关联City模型获取经纬度填充lo/la参数

解决方案

首先确保User模型与City模型建立正确的关联关系:

// app/Models/User.php
public function city()
{
    return $this->belongsTo(City::class);
}

接下来修改getTableQuery方法,通过关联City表来获取用户所在城市的经纬度字段,将其传入AppendDistanceTo方法:

protected function getTableQuery(): Builder
{
    return User::where('age', '>', 21)
        ->join('cities', 'users.city_id', '=', 'cities.id')
        ->appendDistanceTo(
            $this->city->geo->long,
            $this->city->geo->lat,
            'cities.lo',
            'cities.la'
        );
}

说明

  • 通过join关联cities表,让查询能访问到每个用户对应城市的lo(经度)和la(纬度)字段。
  • 直接传入'cities.lo'和'cities.la'作为参数,AppendDistanceTo方法会基于这些字段值,与选中城市的经纬度计算距离。

内容的提问来源于stack exchange,提问作者photojo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:10:16