如何从带有WHERE闭包的表中选择一列数据并在 yii 中作为组合框列出?
问问题
862 次
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()方法,该方法从活动记录查询中获取结果集并将其格式化为一个数组,该数组将被接受到$data
dropDownList 中的参数中() 或 activeDropDownList()。
于 2012-09-20T11:47:32.057 回答