2015-01-30 31 views
18

Denemeye çalıştığım yii2 uygulamasında radioList öğesine şablon eklemek istiyorum ancak uygun bir şekilde alamıyorum.Yii 2 - radioList Şablonu

HTML ... o/p ı is çalıştı bu

enter image description here

Yii2 koda benzemelidir Ben

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

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

olduğunu şablonda çok fazla arama yaptı, ancak uygun bir yanıt almadı.

+0

senin "beklenen çıkışı" görüntü –

+0

Ben yaptığım gibi, resim eklemek alamıyorum satır içi lütfen deneyebilirsiniz yeterince itibarın var. – JDpawar

+0

oh, bu berbat ... cinsiyet [] erkekler [x] kadınlar [] diğer ' –

cevap

41

Sonunda biz radyo düğmesi yukarıda sonucu elde etmek için Yii2

yılında

giriş etiketi oluşturma mantığını değiştirebilir geçtiği yol var, ben aşağıdaki kodu

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

geliştirdik " radioList öğesindeki seçenek "Yii2'de yazılmış giriş oluşturma mantığına bir geriçağırım işlevidir. Bu geri çağırma işlevi ve parametreleri kullanılarak oluşturulan her öğenin düzenini kolayca değiştirebiliriz.

+0

Evet, aynı yaklaşımı uzun zamandır kullanıyorum. Ancak neden ilk yaklaşımın işe yaramayacağını anlamıyorum. Dokümanları okudum, işe yaramalı. Çok daha şık bir çözüm olurdu. İlk fikrini zaman içinde kullanabildin mi? – jeesus

+0

çalışması ancak alanların teslim edilmesinden sonra kontrol edilmiyor –

+0

i değişkenini 'item' olarak kullanamıyorum –

1
i'am çok geç belki

ama bu

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

Source

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

OP neden kodunuzu kullanmalı? Cevabınız hakkında biraz bilgi ekleyebilir misiniz? – Zippy