web-dev-qa-db-fra.com

Yii 2 - modèle radioList

Je veux ajouter un modèle à radioList en yii2, ce que j'ai essayé, mais je ne parviens pas à obtenir le bon o/p.

Le HTML est

<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>

L'o/p devrait ressembler à ceci

enter image description here

Le code Yii2 que j'ai essayé est ...

<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>

J'ai beaucoup cherché sur le modèle mais je n'ai pas obtenu de réponse appropriée.

20
JDpawar

J'ai enfin réussi à modifier la logique de génération des balises d'entrée dans Yii2

Pour obtenir le résultat ci-dessus des boutons radio, j'ai développé le code suivant

            <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>

L'option "item" dans la radioList est une fonction de rappel à la logique de génération d'entrée écrite en Yii2. Nous pouvons facilement modifier la disposition de chaque élément généré en utilisant cette fonction de rappel et ses paramètres.

52
JDpawar

je suis peut-être trop tard mais vous pouvez essayer

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

Source

2
Ryan Arief