Привет, я фильтрую набор данных в Laravel (5.7), используя параметры URL через отправку формы.
Ресурсы могут иметь много CurriculumLevels и много тем, вот код, который я использую для фильтрации на основевыбранные флажки:
if($request->get('subjects') || $request->get('levels')) {
$subjects = $request->get('subjects');
$levels = $request->get('levels');
$resources = Resource::whereHas('subjects', function($query) use ($subjects) {
return $query->whereIn('id', (array)$subjects);
})
->orWhereHas('curriculumLevels', function($query) use ($levels) {
return $query->whereIn('id', (array)$levels);
})
->get();
}else {
$resources = Resource::all();
}
Мои вопросы:
A) Это лучший способ фильтрации данных на основе выбора пользователя?
B) URL, сгенерированный изформа уродлива, как я могу это убрать, чтобы она выглядела как предметы = 1,2,3 и уровни = 1,2,3?
/resources?subjects%5B%5D=6&subjects%5B%5D=7&levels%5B%5D=2&levels%5B%5D=4
C) После отправки формы флажки больше не устанавливаются,Как я могу показать отмеченные флажки, используя параметры URL?
Оцените любую помощь!