我在Yii中有一些表单,使用以下内容以下拉列表的形式从相关表中获取数据列表:
dropDownList(CHtml::listData(Company::model()->findAll(array('order' => 'company ASC'))));
这行得通,但是这意味着对于每个下拉列表(很多),我都将
array('order' => 'company ASC'
放在每个列表中。这是最好的方法吗?没有办法使用模型Relationship()获取数据并指定关系内的顺序吗?
最佳答案
我相信执行此操作的正确方法是使用scopes。
您可以定义任意数量的作用域来对结果集进行排序并按如下方式使用它们:
Company::model()->scopeName()->findAll();
如果您的应用程序始终要求按排序顺序获取公司,则您甚至可以在模型类中定义默认范围:
public function defaultScope() {
return array('order' => 'company ASC');
}
这将导致对
Company::model()->findAll();
的每次调用都返回已排序的结果。关于php - 命令dropDownList使用关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5223163/