我有一个嵌套的关系,我想使用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);