@VitaliyKaliuzhyn

Кастомизация checkboxList()?

Доброго времени суток. Есть вот такая проблема.
Есть код
<?=$form->field($model, 'created_at')->checkboxList(['Checkbox 1','Checkbox 2','Checkbox 3'],['class'=>'mt-checkbox-list', 'itemOptions' => ['labelOptions'=>['class'=>'mt-checkbox mt-checkbox-outline']]]); ?>


который генерирует html разметку
<div class="form-group field-users-created_at required">
<label class="control-label" for="users-created_at">Дата создания</label>
<input type="hidden" name="Users[created_at]" value=""><div id="users-created_at" class="mt-checkbox-list"><label class="mt-checkbox"><input type="checkbox" name="Users[created_at][]" value="0"> Checkbox 1</label>
<label class="mt-checkbox"><input type="checkbox" name="Users[created_at][]" value="1"> Checkbox 2</label>
<label class="mt-checkbox"><input type="checkbox" name="Users[created_at][]" value="2"> Checkbox 3</label></div>

<span class="help-block"></span>
</div>


А мне необходимо внутрь каждого label поместить Что бы получилось вот так
<div class="form-group field-users-created_at required">
<label class="control-label" for="users-created_at">Дата создания</label>
<input type="hidden" name="Users[created_at]" value=""><div id="users-created_at" class="mt-checkbox-list"><label class="mt-checkbox"><input type="checkbox" name="Users[created_at][]" value="0"> Checkbox 1<span></span></label>
<label class="mt-checkbox"><input type="checkbox" name="Users[created_at][]" value="1"> Checkbox 2<span></span></label>
<label class="mt-checkbox"><input type="checkbox" name="Users[created_at][]" value="2"> Checkbox 3<span></span></label></div>

<span class="help-block"></span>
</div>


То есть меня интересует как изменить стандартный template на тот что нужен мне.
Пробовал такой вариант
$this->template = "<div class='mt-checkbox-list'>{input}<span></span></div>";

но он просто после всех label добавляет span. А хотелось бы запихнуть этот span не посредственно в label.
  • Вопрос задан
  • 559 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
$form->field($model, 'created_at')->checkboxList([
  'Checkbox 1',
  'Checkbox 2',
  'Checkbox 3'
],[
   'item' => function ($index, $label, $name, $checked, $value) {
      return // генерируем чекбокс какой угодно структуры
   }
])
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@VitaliyKaliuzhyn Автор вопроса
Еще вопрос вот я задал что мне необходимо вернуть
'item'=>function($label, $name){return "<label class=\"mt-radio \">$name<input type='radio' value='1' name='optionsRadios'><span></span></label>";}

как мне передать параметры, то есть самому label добавить класс а input добавить атрибут.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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