View 在何处实现要在视图文件中显示的变量?
我想在Yii项目的表单中显示一个下拉列表,其中包含for items。我知道我可以用View 在何处实现要在视图文件中显示的变量?,view,yii,View,Yii,我想在Yii项目的表单中显示一个下拉列表,其中包含for items。我知道我可以用 echo $form->dropDownList($model,'element_id', $Options); 在_form.php视图文件中 哪里是实现$options变量的最佳地点?在哪个文件中?看法控制器 您应该将变量从控制器传递到视图。变量中的数据应来自模型。$选项将在更多视图中使用?如果答案是肯定的,我会把它放在主控制器(所有控制器扩展的那个)或main.php中 如果该变量仅在一个视图中
echo $form->dropDownList($model,'element_id', $Options);
在_form.php视图文件中
哪里是实现$options变量的最佳地点?在哪个文件中?看法控制器 您应该将变量从控制器传递到视图。变量中的数据应来自模型。$选项将在更多视图中使用?如果答案是肯定的,我会把它放在主控制器(所有控制器扩展的那个)或main.php中
如果该变量仅在一个视图中使用,并且与CLASE、ID有关,则该位置应位于同一视图中出于此目的,当前模型是最佳选择,因为
\u form.php
可以访问该模型,因此您可以轻松获取数据。虽然可以将数据从控制器传递到\u 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());