@secondmh

Yii2 checkboxList как проставить checked?

На странице имеется форма с фильтрами категорий. При кнопке "Искать" отображаются данные и нужно сохранить checked у тех категорий которые были выбраны. Не могут разобраться как переопределить checked, т.к. comboboxlist value имеет значения 1,2,...8, а массив соответственно с индекса 0. В результате чего галочки прыгают на один пункт ниже. Список категорий грузится из БД (т.к. id начинаются с 1, то для выборки я в POST передавал value с 1, ...). Если передавать с value=0, 1 ... то тогда все работает хорошо, но приходится пересобирать массив в модели, чтобы выгрузить данные, т.к. в БД хранится с id=1.

$form = new TaskForm();

        if (Yii::$app->request->getIsPost()) {
            $form->load(Yii::$app->request->post());
        }


Подскажите как правильно переопределить checked.

<legend>Категории</legend>
                    <?= $f->field($form, 'categories', [
                        'template' => '{input}{label}'
                    ])->checkboxList($categories, [
                        'item' => function ($index, $label, $name, $checked, $value) use ($categories, $form) {
                            $checked = $checked ? 'checked' : '';
                            return "<input class=\"visually-hidden checkbox__input\" id='{$categories[$index]['id']}' type='checkbox' name='{$name}' value='{$categories[$index]['id']}' $checked>
                                    <label for='{$categories[$index]['id']}'>{$categories[$index]['name']}</label>";
                        }
                    ])->label(false); ?>
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы