【问题标题】:Laravel own variable in scopeLaravel 在范围内拥有自己的变量
【发布时间】:2017-07-15 06:08:27
【问题描述】:

我正在使用半正弦公式来计算距离,这很好。

但我想隐藏距离大于该结果的 max_radius 字段的结果。

这是我的数据库方案。

这是我正在使用的查询。 你可以看到我硬编码了距离 (50)

public function scopeFitsDistance($query, $lat, $lng)
{
    return $query->select(\DB::raw("*,
                      ( 3959 * acos( cos( radians(?) ) *
                        cos( radians( lat ) )
                        * cos( radians( lng ) - radians(?)
                        ) + sin( radians(?) ) *
                        sin( radians( lat ) ) )
                      ) AS distance"))
            ->addBinding($lat, 'select')
            ->addBinding($lng, 'select')
            ->addBinding($lat, 'select')
            ->having('distance', '<', 50); <----------
}

但现在我想知道如何隐藏距离

以下不返回任何结果

->having('distance', '<', 'max_radius');

谢谢!

【问题讨论】:

    标签: php laravel eloquent query-builder


    【解决方案1】:

    HAVING 仅适用于GROUP BY

    您可以进行子选择,然后改用WHERE 子句。

    【讨论】:

    • 你能提供一个代码示例吗?我不确定我是否知道如何实现子选择。谢谢!
    猜你喜欢
    • 2012-07-20
    • 1970-01-01
    • 2011-03-09
    • 2021-10-04
    • 2015-10-19
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多