我正在运行以下具有with()
关系的查询。
$logbook_objectives = self::whereIn('lobjective_id', $logbook_objectives_ids)
->with(['objective' => function($q) use ($course_objective_ids){
$q->select(['objective_id', 'objective_code', 'objective_name'])
->whereIn('objective_id', $course_objective_ids)
->whereIn('objective_parent', $course_objective_ids, 'or');
}])
->withCount(['entryObjectives' => function ($q) use ($learner_id) {
$q->where('created_by', $learner_id);
}])
->get();
有时,由于with
函数内的规则,返回的“目标”字段为空。如何删除具有objective
=的结果null
?
->whereHas('objective')
我之前尝试过使用,->get()
但它没有改变任何东西。是否有另一种方法来评估with
函数是否返回 null 保持相同的查询?
我头上的解决方案:
- 改用连接,这样我就可以在同一个查询中评估空结果。
- 使用 foreach 查看验证该
objective
字段是否为空,并从我返回的列表中删除找到的结果。