Подтвердить что ты не робот

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 должен выглядеть так:

enter image description here

Код 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>

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

4b9b3361

Ответ 1

Наконец-то я получил способ, с помощью которого мы можем изменить логику генерации входных тегов в 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. Мы можем легко изменить компоновку каждого элемента, сгенерированного с помощью этой функции обратного вызова и ее параметров.

Ответ 2

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

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

Источник

Ответ 3

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