我在Yii中有一些表单,使用以下内容以下拉形式从相关表中获取数据列表:
dropDownList(CHtml::listData(Company::model()->findAll(array('order' => 'company ASC'))));
这是有效的,但这意味着对于每个下拉列表(其中很多)我将这个数组(‘order’=>’公司ASC’放在每一个中.
这是最好的方法吗?有没有办法使用模型关系()获取此数据,并指定关系中的顺序?
解决方法:
我相信这样做的正确方法是使用scopes.
您可以定义任意数量的范围,这些范围对结果集进行排序并使用它们,如下所示:
Company::model()->scopeName()->findAll();
如果您的应用程序始终要求按排序顺序提取公司,您甚至可以在模型类中定义默认范围:
public function defaultScope() {
return array('order' => 'company ASC');
}
这将导致每次调用Company :: model() – > findAll();返回排序结果.
原文地址:https://codeday.me/bug/20190518/1128649.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。