У меня в контроллере следующий запрос.
$items = Item::with(['subitems' => function($query) {
$query->where('language_id', '=', 1);
}])->get();
Правильно получаются все элементы, включая подпункты с идентификатором языка 1.
Есть две вещи, которые я хотел бы сделать с этим, хотя
- Во-первых, мне нужно вернуть все подпункты, которые имеют отличное значение ref_id.
- Во-вторых, я хотел бы отдать предпочтение идентификатору языка
1
, но если его не существует, используйте любой идентификатор языка.
Так, например, я знаю, что этот код не будет работать, но я ищу следующее:
$items = Item::with(['subitems' => function($query) {
$subItems = $query->where('language_id', '=', 1)
->where('ref_id', 'is', 'distinct');
if($subItems->count() <= 0) {
$subItems = $query->where('ref_id', 'is', 'distinct');
}
}])->get();
Возможно ли это или это слишком сложно для Query Builder? Даже если бы один из двух запросов был возможен, это было бы здорово.