У меня есть две таблицы пользователей и посещаемости.В таблице посещаемости содержится посещаемость пользователей для present_date
и present_type
мудрых.present_type
сохраняется для смены.Если смена, пользователь может иметь несколько посещений на дату.По этой причине у одного пользователя может быть много строк в таблице посещаемости.Я хочу показать всех пользователей и отметил =>, если посещаемость найдена для определенного дня, а тип для пользователя не отмечен =>, если посещаемость не существует для дня в цикле просмотра.
$userList = User::
orWhereHas('userAttendance', function ($q) use ($attDate,$type) {
$q->where('present_date', $attDate);
$q->wherePresentType($type);
})->get();
В цикле блейд-файла:
@foreach($userList as $key => $user)
<input value="{{$user->id}}" title="" type="checkbox"
@if($user->userAttendance)
checked="checked" data-exist-id="{{$user->userAttendance->id}}"
@endif class="action-normal" />
Но это работает не так, как ожидалось.Он проверяет, существует ли строка в таблице посещаемости без даты или типа фильтрации, записанной в orWhereHas
Clasure!
Я хочу проверить, существуют ли данные определенного дня (если present_type не для смены) в таблице посещаемости, не делаядругой запрос, чтобы сохранить ограниченное попадание в дб.
Я могу сделать это, используя функцию в пользовательской модели, где функция получает параметр из блейд-файла во время цикла.Но я не хочу делать дополнительный запрос БД.
Есть ли способ использовать чистый eloquent?Могу ли я проверить его для пользователя во время цикла, используя данные, отправленные из функции контроллера?