2015-01-30 5 views
18

yii2의 radioList에 템플릿을 추가하려고합니다.하지만이 템플릿은 적절한 o/p를 얻을 수 없습니다.Yii 2 - radioList Template

html로합니다 ... 오/P가 I는 노력이

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> 

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

입니다 템플릿을 많이 검색했지만 적절한 응답을받지 못했습니다.

+0

당신의 "예상 출력"이미지 –

+0

내가하지 않는 한 나는, 이미지를 추가 할 수 없습니다입니다 인라인하시기 바랍니다 시도 할 수 있습니다 충분한 평판을 얻는다. – JDpawar

+0

오, 그거 싫어. .. 성별 [남자] [여자] [기타] –

답변

41

마침내 우리는 라디오 버튼의 위의 결과를 얻으려면 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> 

을 개발 한 " radioList의 "item"옵션은 Yii2로 작성된 입력 생성 로직에 대한 콜백 함수입니다. 이 콜백 함수와 매개 변수를 사용하여 생성 된 각 요소의 레이아웃을 쉽게 수정할 수 있습니다.

+0

예, 오랫동안 동일한 접근 방식을 사용해 왔습니다. 그러나 나는 왜 당신이 초기 접근 방식이 효과가 없을지 이해하지 못합니다. 나는 문서를 읽었으므로 제대로 작동 할 것이다. 훨씬 더 우아한 해결책이 될 것입니다. 시간이 지남에 따라 초기 아이디어를 사용할 수 있었습니까? – jeesus

+0

그것의 작동하지만 제출 후 필드가 확인되지 않습니다 –

+0

다른 변수를 '항목'으로 사용할 수 없습니다 –

1
i'am 너무 늦게 어쩌면

하지만 당신은이

<?= $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가 코드를 사용해야하는 이유는 무엇입니까? 답변에 대한 정보를 추가 할 수 있습니까? – Zippy