微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Yii:按条件排序

我使用CActiveDataprovider来显示来自不同表的数据.现在我遇到了问题.我有两个表(项目和类别),他们都有priority_order列,我需要使用两个列的顺序显示数据.

例如:属于这些类别的有两个类别和六个项目:

>食物(priority_order 1)

> food_item1(priority_order 1)
> fodd_item2(priority_order 2)
> fodd_item3(priority_order 3)

>饮料(priority_order 2)

> drink_item1(priority_order 1)
> drink_item2(priority_order 2)
> drink_item3(priority_order 3)

现在我需要完全按照上面的顺序显示CGridView中的数据.所有食品都将首先出现,并按优先顺序排序,饮品将在稍后出现;显然在他们的顺序.

在ItemsController中我尝试下面的代码(现在只按类别排序)

$dataProvider = new CActiveDataProvider('Items', array(
                'criteria' => array(
                    'with' => array('category'),
                    'condition' => 'user_id=' . Yii::app()->user->id,
                    //'order' => 't.priority_order ASC',
                    'order' => 'category.priority_order ASC',
                ),
      ));

如果仍然不够清楚,我很乐意提供更多细节.任何帮助,将不胜感激.

解决方法:

$dataProvider = new CActiveDataProvider('Items', array(
            'criteria' => array(
                'with' => array('category'),
                'condition' => 'user_id=' . Yii::app()->user->id,
                'order' => 'category.priority_order ASC, t.priority_order ASC',
            ),
  ));

给订单标准第二个参数应该有效

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐