我有一个商店表,我计算了这些商店位置和客户位置之间的距离,我想比较距离是否大于商店覆盖范围,然后不在列表中显示该商店我知道可以使用havingRaw,但如果我使用 \DB::table('stores') 但就我而言,我在获得所有商店后添加了距离列,现在我在刀片中使用它并且工作正常,但想知道是否可以在控制器中执行此操作 @if($item->store_coverage >= $item->distance)return $stores->where('distance','>',0 )->where('distance <= store_coverage')->sortBy('distance');希望你能得到我需要的东西
2 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
使用集合过滤器助手
$stores->filter(function ($item, $key) { return $item->store_coverage >= $item->distance; });
喵喔喔
TA贡献1735条经验 获得超5个赞
您忘记将 where 语句分解为其参数,并在查询对象上调用 sortBy,而不是结果集合。
$stores->where('distance', '>', 0) ->where('distance', '<=', 'store_coverage') ->get() ->sortBy('distance');
- 2 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消