访问先前执行的查询的结果

时间:2015-12-09 11:50:06

标签: php laravel eloquent

我有一个嵌套的关系,我想使用Eloquent运行的第一个查询的结果来过滤它们。

我的Eloquent查询是:

$entry = Entry::with([
            'products.unit',
            'products.area'
        ])->find($id);

查询日志显示Eloquent首先运行此查询: select * from entry where entry.deleted_at is null and entry.id = ? limit 1

我想在第二个查询中使用它的结果,也是由Eloquent运行的:

select area.*, 
area_product.product_id, area_product.quota as pivot_quota,
area_product.month as pivot_month 
from area inner join area_product 
on area.id = area_product.area_id 
where area.deleted_at is null and area_product.product_id in (?)

我想使用来自第一个查询month值在其中加入约束。

有没有办法使用Eloquent来做?

我在考虑这样的事情:

$entry = Entry::with([
             'products.unit',
             'products.area' => function ($q) {
               // using month here!
             }
         ])->find($id);

0 个答案:

没有答案