我有一个带有相关收藏的模型
现在我正在执行此查询
$data = DeliveryPartner::when($filter, function ($q) use ($request) {
})
->with(['orders' => function ($query) {
$query
->where('delivery_partner_invoice_id', '=', '')
->orWhereNull('delivery_partner_invoice_id')
->whereIn('status', ['payment-accepted', 'completed', 'full-refund', 'partial-refund']);
}])->get();
现在我想知道。如果订单返回为空,是否可以从集合中删除该父对象?
我知道我可以在雄辩的查询后执行此操作。但是可以在查询中做到这一点吗?
答案 0 :(得分:0)
我们无法完全删除该父对象(带有索引),但是您可以像这样使用transform()将其设置为null
;
$data = DeliveryPartner::when($filter, function ($q) use ($request) {
})
->with(['orders' => function ($query) {
$query
->where('delivery_partner_invoice_id', '=', '')
->orWhereNull('delivery_partner_invoice_id')
->whereIn('status', ['payment-accepted', 'completed', 'full-refund', 'partial-refund']);
}])->get()->transform(function($item){
if(!$item->orders->count() ){
return;
}
return $item;
});
注意:这不会完全删除那些父母,但会将其设置为空。