2014-02-27 2 views
0

_form 뷰에서 dropDownList를 만들려고합니다. Yii 클래스에서 dropDownList 변수를 전달합니다.

는 나는이

처럼 뭔가를 수정해야 의미

<div class="row"> 
<?php echo $form->labelEx($model,'name_en'); ?> 
<?php echo $form->textField($model,'name_en',array('size'=>60,'maxlength'=>255)); ?> 
<?php echo $form->error($model,'name_en'); ?> 
</div> 

을 DropDownList로 수정해야하는 텍스트 필드가 _form보기에 이제 컨트롤러 부분

public function actionCreate() 
{ 
    $modelCountry = Country::model()->findAll(); 
    $this->render('create',array(
    'model'=>$model,'modelCountry'=>$modelCountry, 
    )); 
} 

입니다

<?php echo $form->dropDownList($model,'name_en',array('!Variable!A!From_modelCountry!','!Variable!B!From_modelCountry!')); ?> 

foreach 루프를 사용할 수 있으며 루프 내부에서 일부 DropDownList를 만들 수는 있지만 다시 배열 $ modelCountry에서 데이터를 가져 와서 그 dropDownList의 배열에 직접 저장하는 것이 더 좋은 방법일까요?

답변

1

네, 그렇게 할 수 있습니다. 컨트롤러에서 당신이

$list=CHtml::listData($modelCountry,'id','name_en'); 
$this->render('create',array(
    'model'=>$model,'modelCountry'=>$modelCountry,'list'=>$list 
    )); 

지금보기에 당신이

<?php echo $form->dropDownList($model,'name_en',$list); ?> 

당신이보기에 Chmlt ::이 listData을 사용할 수 있습니다 쓸 수 있습니다 쓸 수 있지만 컨트롤러의 일부가되어야, MVC가 무엇인지 이잖아 모든 약.

+0

감사합니다. 문제가 해결되어 – David

+0

님께 도움이 되었기 때문에 기쁩니다. –

1
<?php echo $form->dropDownList($model,'name_en',CHtml::listData(Country::model()->findAll(),'id','name')); ?>