在laravel 5.5中whereHas()不在value为NULL的地方工作。我与其他模型的关系是一对多,我想从模型中选择值等于NULL的值。但不是返回特定值,而是返回结果中的所有值
{{1}}
答案 0 :(得分:1)
您必须指定两次约束:
$plans = Plan::with(['objectives' => function($query) {
$query->whereNull('entity_id');
$query->whereNull('quarter_id');
}, 'objectives.keyResults'])
->whereHas('objectives', function($query) {
$query->whereNull('entity_id');
$query->whereNull('quarter_id');
})->where('companyKey', Auth::user()->companyKey)
->get();
答案 1 :(得分:0)
不需要双重约束,只需将其简化为:
$plans = Plan::whereHas('objectives', function($query) {
$query->whereNull('entity_id');
$query->whereNull('quarter_id');
})->with(['objectives'])
->where('companyKey', Auth::user()->companyKey)
->get();