1

如何从带有WHERE闭包的表中选择一列数据并在 yii 中作为组合框列出?

4

1 回答 1

3

查看 CHtml 方法dropDownList()activeDropDownList()

例如,您可以将插入下拉列表的数据设置为活动记录查询的结果;

echo CHtml::dropDownList('myDropdown', '1',  CHtml::listData(myModel::model()->findAllByAttributes(array('myField'=>1)),'id','name'));

上面的命令将从myModel模型中选择所有结果myField = 1(使用它们的“id”作为值,使用它们的“名称”作为显示的文本)并将它们插入到名称为“myDropdown”的下拉列表中,初始选择值为 1 .

如果您在表单中使用它,例如由 gii 创建,那么您可以使用 $form 创建下拉列表。这实际上使用了activeDropDownList(),所以语法有点不同,这里有一个例子:

 echo $form->dropDownList($model,'myOtherField', CHtml::listData(myModel::model()->findAllByAttributes(array('myField'=>1)),'id','name'));

实际使用来自活动记录查询的数据填充下拉列表的位是CHtml::listData()方法,该方法从活动记录查询中获取结果集并将其格式化为一个数组,该数组将被接受到$datadropDownList 中的参数中() 或 activeDropDownList()。

于 2012-09-20T11:47:32.057 回答