Доброго дня всем
Стоит задача сделать фильтр, как на этой странице -
https://postupi.kz/specialnosty/
Я сделал и все работает. Вот код:
Форма
<form action="{{ route('filtracia') }}" method="get">
@foreach($vuz as $item)
<p>
<input type="checkbox" name="{{ $item->name }}" value="{{ $item->id }}">
{{ $item->title }}
</p>
@endforeach
<h5>Направление обучения</h5>
<hr>
@foreach($napravlenie as $value)
<p>
<input type="checkbox" name="{{ $value->alias }}" value="{{ $value->id }}">
{{ $value->title }}
</p>
@endforeach
<hr>
<button class="btn btn-success" type="submit">Подобрать</button>
</form>
Контроллер
if ($request->tehnical || $request->urist || $request->economic || $request->managmant || $request->gumanitar) {
$data = Specialnosti::whereIn('univer_id', [
$request->bntu,
$request->tulgu,
$request->mmu,
$request->mip,
$request->tgu,
$request->vgu,
])->whereIn('napravlenie_id', [
$request->tehnical,
$request->urist,
$request->economic,
$request->managmant,
$request->gumanitar,
])->get();
} else {
$data = Specialnosti::whereIn('univer_id', [
$request->bntu,
$request->tulgu,
$request->mmu,
$request->mip,
$request->tgu,
$request->vgu,
])->get();
}
if (!$request->bntu && !$request->tulgu && !$request->mmu && !$request->mip && !$request->tgu && !$request->vgu) {
$data = Specialnosti::whereIn('napravlenie_id', [
$request->tehnical,
$request->urist,
$request->economic,
$request->managmant,
$request->gumanitar,
])->get();
}
Но это работает только со статическими данными. Т.е., если добавить ВУЗ или специальность, то придется вручную добавлять код в контроллере. Как правильно организовать фильтрацию (запрос к БД), чтобы работало без правки контроллера?
Большое спасибо за любую помощь.