【问题标题】:How to select a column of data from table with WHERE closure and display如何使用 WHERE 闭包从表中选择一列数据并显示
【发布时间】:2012-09-20 10:23:00
【问题描述】:

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

【问题讨论】:

  • 您的意思是从数据库中的表中检索一组模型以在下拉框中列出?
  • 是的,我是 MVC&yii 初学者,谢谢

标签: yii-extensions yii yii-components


【解决方案1】:

查看 CHtml 方法 dropDownList()activeDropDownList()

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

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

上述命令将从myModel 模型中选择所有结果,其中myField = 1(使用它们的'id' 作为值,使用它们的'name' 作为显示的文本)并将它们插入到名为'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() 中的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2015-11-13
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多