将数据从数据库添加到现有变量以执行查询

时间:2017-06-30 12:03:10

标签: php laravel eloquent

我不确定如果不先进行查询就可以做到这一点。

我有这样的事情:

$item_weight

此项目进入一个框,该框有自己的行$box->weight,最大权重为$box->max_weight

我想要一个可以放入物品的盒子列表。

我知道我可以先执行查询然后使用foreach进行计算,但我想知道是否有更简洁的方法来执行此操作。

这样的事情:

$boxes= Boxes::where('max_weight','>',$item_weight + $box->weight)
                ->orderBy('max_weight','asc')
                ->get();

1 个答案:

答案 0 :(得分:2)

您可以使用whereRaw并将计算转移到数据库端:

$boxes= Boxes::whereRaw('boxes.max_weight - boxes.weight > ?', [$item_weight])
    ->orderBy('max_weight','asc')
    ->get();