在视图文件中显示变量的位置?

hd.*_*hd. 0 view yii

我想在Yii项目的表单中显示一个带有项目的下拉列表.我知道我可以使用

echo $form->dropDownList($model,'element_id', $Options); 
Run Code Online (Sandbox Code Playgroud)

在_form.php视图文件中.

实现$ options变量的最佳位置在哪里?在哪个文件?看?控制器?

Muh*_*aib 11

当前模型是此目的的最佳选择,因为_form.php可以访问模型,因此您可以轻松获取数据.虽然您可以从控制器传递数据_form.php,但这是更多的工作.

如果要从数据库填充数据 - 例如,您希望从数据库表中显示国家/地区tbl_countries- 您可以在模型中编写一个函数来加载它们:

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

这将为您提供一个数组,其中ID号为键,国家/地区名称为值.然后,您可以从视图文件中调用此函数:

echo $form->dropDownList($model,'element_id', $model->countries()); 
Run Code Online (Sandbox Code Playgroud)