我是 Yii 框架的新手。
我有一个包含三个字段的表单。我需要其中一个是一个选择下拉元素,它的数据来自以前添加的 mysql 表中的数据。
我该怎么做 ?
例如,如果您为包含要在下拉列表中使用的数据的表设置了模型,则可以使用CHtml::dropDownList()
渲染下拉列表的方法,并将CHtml::listData()
该模型渲染为列表的项目;
echo CHtml::dropDownList(
'attribute_name',
'',
CHtml::listData(MyOtherModel::model()->findAll(),'id','name')
);
我经常使用 Gii,它使用 CActiveForm 小部件来显示表单,如果您的表单也使用 CActiveForm,您可以渲染您的下拉列表:
$form=$this->beginWidget('CActiveForm', array(
'action'=>Yii::app()->createUrl($this->route),
'method'=>'get',
));
...
echo $form->label($model,'attribute_name');
echo $form->dropDownList(
$model,
'attribute_name',
CHtml::listData(MyOtherModel::model()->findAll(),'id','name')
);
...
$this->endWidget();
请注意,CActiveForm 使用CHtml::activeDropDownList()
而不是CHtml::dropDownList()
我在第一个示例中使用的,因此我的两个示例之间的语法略有不同。