Yii 2 – шаблон для радиолистов

Я хочу добавить шаблон в radioList в yii2, который я пробовал, но я не могу получить надлежащее o / p.

HTML-код

<div class="input-wrap"> <label class="gender-head">Gender</label> <label class="signup-radio"> <input type="radio" name="signup-gender" id="signupMale" checked tabindex="3" /> <i></i> <span>Male</span> </label> <label class="signup-radio"> <input type="radio" name="signup-gender" id="signupFemale" tabindex="3" /> <i></i> <span>Female</span> </label> </div> 

O / p должен выглядеть так:

введите описание изображения здесь

Код Yii2, который я пробовал, – это …

 <div class="input-wrap"> <div class="clearfix"> <?= $form->field($model, 'gender', ['radioTemplate' => '<label class="gender-head">{label}</label><label class="signup-radio">{input}</label>'])->inline()->radioList([1 => 'Male', 0 => 'Female'], ['separator' => '', 'tabindex' => 3]); ?> </div> <div class="help-block"></div> </div> 

Я много искал в шаблоне, но не получил никакого правильного ответа.

Наконец, я получил способ, с помощью которого мы можем изменить логику генерации входных тегов в Yii2

Чтобы получить вышеуказанный результат переключателей, я разработал следующий код

  <div class="input-wrap"> <div class="clearfix" id="UserLogin-gender"> <label class="radio-head">Gender</label> <?= $form->field($model, 'gender') ->radioList( [1 => 'Male', 0 => 'Female'], [ 'item' => function($index, $label, $name, $checked, $value) { $return = '<label class="modal-radio">'; $return .= '<input type="radio" name="' . $name . '" value="' . $value . '" tabindex="3">'; $return .= '<i></i>'; $return .= '<span>' . ucwords($label) . '</span>'; $return .= '</label>'; return $return; } ] ) ->label(false); ?> </div> <div class="help-block"></div> </div> 

Опция «item» в radioList является функцией обратного вызова для логики формирования ввода, написанной в Yii2. Мы можем легко изменить компоновку каждого элемента, сгенерированного с помощью этой функции обратного вызова, и его параметров.

может быть, я слишком поздно, но вы можете попробовать это

 <?= $form->field($model, 'abc')->inline()->radioList(['example1' => 'example1', 'example2' => 'example2'])->label(false) ?> 

Источник

 $form->field($model, 'gender') ->radioList(array(1 => 'Male', 0 =>'Female'), array('class' => 'i-checks'));