我使用的是whereHas,我只想在子查询没有NULL的情况下返回记录
return App\Bill_of_Lading::with('transactions.confirmed_transaction.delivery_order')
->whereHas('transactions.confirmed_transaction.delivery_order', function ($query) {
$query->whereNotNull('date_delivered');
})->get();预期结果: NULL (因为存在date_delivered为NULL的交货单)结果:提单与值为NULL的交货单的集合
我也使用了Laravel的" with“,但没有成功
return App\Bill_of_Lading::with(['transactions.confirmed_transaction.delivery_order' => function($query){
$query->whereNotNull('date_delivered');
}])->get();我甚至把whereNotNull包在里面
return App\Bill_of_Lading::with('transactions.confirmed_transaction.delivery_order')
->whereHas('transactions.confirmed_transaction.delivery_order', function ($query) {
$query->where(function($q){
$q->whereNotNull('date_delivered');
});
})->get();发布于 2021-07-09 23:43:36
现在就差不多了,whereHas()为查询条件提供了额外的参数。因此,检查关系是否有空字段,并将其断言为0,因此任何交付顺序列都不能为空。
->whereHas(
'transactions.confirmed_transaction.delivery_order', function ($query) {
$query->whereNull('date_delivered');
},
'=',
0
)https://stackoverflow.com/questions/68318057
复制相似问题