Drop down menu 一个表单中的Yii和Dropdown
我是Yii框架的新手 我有一个有三个字段的表单。我需要其中一个是select下拉元素,它的数据来自mysql表中先前添加的数据Drop down menu 一个表单中的Yii和Dropdown,drop-down-menu,yii,Drop Down Menu,Yii,我是Yii框架的新手 我有一个有三个字段的表单。我需要其中一个是select下拉元素,它的数据来自mysql表中先前添加的数据 如何操作?如果为包含要在下拉列表中使用的数据的表设置了模型,则可以使用呈现下拉列表的方法,并将该模型呈现为列表的项目,例如 echo CHtml::dropDownList( 'attribute_name', '', CHtml::listData(MyOtherModel::model()->findAll(),'id','name')
如何操作?如果为包含要在下拉列表中使用的数据的表设置了模型,则可以使用呈现下拉列表的方法,并将该模型呈现为列表的项目,例如
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::dropDownList()
,因此我的两个示例在语法上略有不同。谢谢。我采用了第二种方法。但是我如何才能在listData中的项之前添加一个空白选项呢?您可以array\u merge(array(''=>''),CHtml::listData(MyOtherModel::model()->findAll(),'id','name'))
在列表的开头添加一个空白数组项。再次感谢您。请你回答另一个问题好吗?