Запрос извлекает неверные данные, должен извлекать только departamento
ненулевой. Может кто-нибудь мне помочь?
Код:
$banca = Banca::with(['trabalho.membrobanca.departamento' => function($query) use ($d) {
$query->where('id', $d);
}])->get();
$banca = collect($banca)
->unique('trabalho_id')
->values()
->all();
Диаграмма с отношениями.
Вы можете поставить фильтр на memrobanca
таблица и фильтр на нулевые значения.
$banca = Banca::with([
'trabalho.membrobanca' => function($query) use ($d) {
$query->where('departamento_id', $d)
->whereNotNull('departamento_id')
->with('departamento');
}
])
->get();
Вы можете использовать функцию Laravel has (). Вернется возврат Banca где Departamento не нуль
$banca = Banca::with(['trabalho.membrobanca.departamento' => function($query) use ($d) {
$query->where('id', $d);
}])
// has function will return banca if banca has non-null departamento
->has('trabalho.membrobanca.departamento')
->get();
Проверь это:
https://laravel.com/docs/5.4/eloquent-relationships#querying-relationship-existence