Я пытаюсь вернуть коллекцию из базы данных, в которой находится «Группа пользователей», а также связанные с ней пользователи.Однако я хочу, чтобы критерии выбора основывались на том, обучен ли пользователь в соответствующей таблице или нет.Если это так, я хочу, чтобы эта строка / запись была ИСКЛЮЧЕНА из окончательной коллекции.
По сути, я хочу:
Возвращать все группы типа 'GreenGroup', где хотя бы один связанный сотрудник не обучен, и отображать в таблице только неподготовленных сотрудников.
Так, чтобы он возвращал такой объект, как этот:
0: {
id: 2,
group: GreenGroup,
size: 4,
employees: {
0: {name: 'Jane', isTrained: 0},
1: {name: 'Jeremy', isTrained: 0}
}
}
Но сейчас он находит GreenGroup, но возвращает ВСЕХ пользователей в этой группе.Я ищу способ исключить их в построителе запросов.Итак, вот что у меня есть:
$results = Group::with(['employees'])->where('group', '=', 'GreenGroup')->whereHas('employees', function($query){
$query->where('isTrained', '=', '0');
})->get();
return json_encode($results);
Есть ли способ исключить записи реляционных таблиц в построителе запросов?Или я вынужден (когда я прохожу их и показываю их на моем сайте) написать логику, которая проверяет, обучены они или нет?