@BarneyGumble

Как в Laravel заполнить чекбоксы относительно get-параметров в адресной строке?

Разрабатываю интернет-магазин на Laravel. Занимаюсь сейчас реализацией фильтра товаров.
Необходимо, имея строку с поисковыми параметрами, заполнить чекбоксы в форме, выполняющей фильтрацию.

Т.е. сейчас я имею вот такую строку:
localhost:3000/?category=tops&color=black

И хочу чтобы чекбоксы заполнились следующим образом при загрузке страницы:

<form action="{{ route('layouts.main') }}" method="GET">

<h4>Категория</h4>
<label>
    <input type="checkbox" checked="" name="category[]" value="tops">
    Топы
</label>
<label>
    <input type="checkbox" name="category[]" value="bottoms">
    Нижнее бельё
</label>

<h4>Цвет</h4>
<label>
    <input type="checkbox" checked="" name="category[]" value="black">
    Чёрный
</label>
<label>
    <input type="checkbox" name="category[]" value="white">
    Белый
</label>

</form>


Это необходимо мне для того, чтобы я не терял значения формы, переходя по указанной ссылке с параметрами.

Как лучше это сделать?

Была мысль в контроллере сделать что-то типа:

if($request->category){
    $categories = $request->category;
}

if($request->color){
    $colors = $request->color;
}

return view('layouts.main')->with([
            'categories' => $categories,
            'colors' => $colors
        ]);


Но непонятно как потом в blade шаблоне проставлять checked определённым чекбоксам
  • Вопрос задан
  • 747 просмотров
Решения вопроса 1
@Kostik_1993
Web Developer
Например так
@if(request()->input('name') == 'value') checked="" @endif

А еще лучше использовать расширение для форм, тогда он сам выставит нужное значение если оно придет с запросом

https://laravelcollective.com/docs/5.4/html#checkb...

Form::checkbox('name', 'value', true);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы