2012-12-30 3 views
0

항목이있는 Yii 프로젝트의 양식에 드롭 다운을 표시하려고합니다. _form.php보기 파일에서뷰 파일에 표시 할 변수를 수행 할 위치는 어디입니까?

echo $form->dropDownList($model,'element_id', $Options); 

을 사용할 수 있음을 알고 있습니다.

$ options 변수를 이행하는 가장 좋은 장소는 어디입니까? 어떤 파일에? 보기? 컨트롤러?

답변

1

컨트롤러에서보기로 변수를 전달해야합니다. 변수의 데이터는 모델에서 가져와야합니다.

0

$보기가 더 많은보기에서 사용됩니까? 대답이 '예'인 경우 주 컨트롤러 (모든 컨트롤러가 확장되는 컨트롤러) 또는 main.php에 배치합니다. , 장소는 동일한보기

11

현재의 모델은 _form.php 모델에 액세스 할 수 있기 때문에 이러한 목적을위한 최선의 선택에서 그 변수가 하나 개의보기 및 관련 clases, ID에 사용되는 경우

해야한다 따라서 데이터를 쉽게 얻을 수 있습니다. 컨트롤러에서 _form.php으로 데이터를 전달할 수 있지만 더 많은 작업입니다.

당신은 데이터베이스에서 데이터를 채울하려는 경우 - 예를 들어, 데이터베이스 테이블 tbl_countries에서 국가를 보여주고 싶어요 - 당신이 그들을로드 모델의 함수를 작성할 수 있습니다

/* Get all countries. */ 
public function getCountries(){ 
    $allCountries = Countries::model()->findAll(); 
    return CHtml::listData($allCountries, "id", "name") 
} 

이 줄 것이다 ID 번호가 키이고 국가 이름이 값인 배열입니다. 그런 다음보기 파일에서이 함수를 호출 할 수 있습니다.

echo $form->dropDownList($model,'element_id', $model->countries()); 
관련 문제