Laravel自己的范围变量

时间:2017-02-24 12:01:10

标签: php laravel eloquent query-builder

我正在使用hasrsine公式来计算距离,这是正常工作。

  

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

这是我的数据库方案。

enter image description here

这是我正在使用的查询。 你可以看到我硬编码距离(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');

谢谢!

1 个答案:

答案 0 :(得分:0)

{\"method\":\"call\",\"jsonrpc\":\"2.0\",\"id\":1,\"params\":[\"token\",\"network.interface.wan\",\"status\",{}]} 仅适用于HAVING

您可以进行子选择,然后使用GROUP BY子句。