我想在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)