Php Laravel比较插入的列和同一行中的另一列

Php Laravel比较插入的列和同一行中的另一列,php,database,laravel,Php,Database,Laravel,我有一个门店表,我计算了这些门店位置和客户位置之间的距离,我想比较一下,如果距离大于门店覆盖率,那么不在列表中显示该门店 我知道可以使用havingRaw,但如果我使用\DB::table('stores'),但在我的例子中,我在获得所有存储后添加了距离列,因为现在我在刀片服务器中使用它,工作正常,但不知道是否可以在控制器中这样做 @if($item->store_coverage >= $item->distance) return $stores->wh

我有一个门店表,我计算了这些门店位置和客户位置之间的距离,我想比较一下,如果距离大于门店覆盖率,那么不在列表中显示该门店 我知道可以使用havingRaw,但如果我使用\DB::table('stores'),但在我的例子中,我在获得所有存储后添加了距离列,因为现在我在刀片服务器中使用它,工作正常,但不知道是否可以在控制器中这样做

      @if($item->store_coverage >= $item->distance)

return $stores->where('distance','>',0 )->where('distance <= store_coverage')->sortBy('distance');
@if($item->store\u coverage>=$item->distance)

return$stores->where('distance','>',0)->where('distance您忘了将where语句分解为其参数,并且正在对查询对象而不是结果集合调用sortBy

$stores->where('distance', '>', 0)
       ->where('distance', '<=', 'store_coverage')
       ->get()
       ->sortBy('distance');
$stores->where('distance','>',0)

->where('distance','您忘了将where语句分解为其参数,并且正在对查询对象而不是结果集合调用sortBy

$stores->where('distance', '>', 0)
       ->where('distance', '<=', 'store_coverage')
       ->get()
       ->sortBy('distance');
$stores->where('distance','>',0)

->其中('distance','使用集合过滤器辅助对象

$stores->filter(function ($item, $key) {
    return $item->store_coverage >= $item->distance;
});

使用集合筛选器辅助程序

$stores->filter(function ($item, $key) {
    return $item->store_coverage >= $item->distance;
});

这是不正确的,我告诉过你我在添加get后有了这些存储,然后我将这些存储与其位置进行了比较…等等,因此添加get将导致错误,因为函数的参数太少,无法使用illumb\Support\Collection::get(),0传入的$stores变量是什么?这不正确,我告诉过你我在添加get后有了这些存储,然后我将这些存储与它们的位置进行了比较…等等,因此添加get会导致错误,参数太少,无法使用函数illumb\Support\Collection::get(),0传入的$stores变量是什么?您的意思是什么“在控制器中执行”?为什么在控制器中需要这样的逻辑?将其放入适当的服务中,以便能够正确地重用和测试它?您所说的“在控制器中执行”是什么意思?为什么在控制器中需要这样的逻辑?将其放入适当的服务中,以便能够正确地重用和测试它