Lobochkin
@Lobochkin
Начинающий программист PHP

Как убрать верхние Label и input при выводе $form->field()->checkboxList()?

При вызове
<?= $form->field($formFilter, 'category', [
    'options' => [
        'tag' => 'fieldset',
        'class' => 'search-task__categories'
    ]
])->checkboxList(Category::getCategorisList(), [
    'tag' => false,
    'item' => function ($index, $label, $name, $checked, $value) {
        return '<label class="checkbox__legend">' .
            Html::checkbox($name, $checked, [
                'class' => 'visually-hidden checkbox__input',
                'value' => $value
            ]) . '<span>' . $label . '</span>                    
                </label>';
    }
]); ?>

Получаю
602d6803bc9be033962794.jpeg
Появляется лишний label и iput, как их убрать и вместо них поставить тег legend с таким же содержимым как у label
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 2
@toratoda
чтоб убрать label : ->label(false)
чтоб убрать input: ->checkboxList($items, ['unselect'=>false])
чтоб добавить legend лучше унаследовать свой ActiveField в котором подменить функцию
public function label($label = null, $options = [])
чтоб она рендерила legend и указать этот новый класс в форме.
Ответ написан
Lobochkin
@Lobochkin Автор вопроса
Начинающий программист PHP
Спасибо всем кто откликнулся, самому получилось разобраться , вот что вышло
<?= $form->field($formFilter, 'category', [
                "template" => Html::tag('legend',"{labelTitle}") . "\n{input}",
            'options' => [
                'tag' => 'fieldset',
                'class' => 'search-task__categories',
            ]
        ])->checkboxList(Category::getCategorisList(), [
            'unselect' => null,
            'tag' => false,
            'item' => function ($index, $label, $name, $checked, $value) {
                return Html::beginTag('label',['class' =>'checkbox__legend']) .
                    Html::checkbox($name, $checked, [
                        'class' => 'visually-hidden checkbox__input',
                        'value' => $value
                    ]) . Html::tag('span',$label) . Html::endTag('label');
            }
        ]); ?>
Ответ написан
Ваш ответ на вопрос

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

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