雄辩的渴望加载自定义查询

时间:2016-03-14 08:36:15

标签: php laravel

我有一个使用Baum的Category模型。每个类别都有active_products字段,该字段包含该类别中的多个活动产品。我需要的是,我可以获得一些active_products,不仅可以用于类别,还可以用于所有后代。

目前我已经实现了这个目标:

$active_products = Category::select('active_products')
                ->where('lft', '>=', $category->lft)
                ->where('lft', '<=', $category->rgt)
                ->where('enabled', 1)
                ->lists('active_products');

我返回$ active_products的array_sum。

但有时在foreach中使用它并且它可以产生大量查询。我无法弄清楚如何解决这个问题。我可以急于加载自定义查询而不是关系吗?

编辑#1:我实际上不需要关系。我只需要每个类别都有类似active_products_count属性的东西,或者某个值是类别本身及其后代的active_products字段之和。我希望它表现得像这样:

Category::where('somecondition)->with('active_products_count);

因此,当我循环浏览类别时,我不需要进行其他查询?有什么想法可以做到这一点? (实际上不必使用“with”和eager-loading,但这是我能提出的最接近的事情)

0 个答案:

没有答案