4

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

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

  • 食物(priority_order 1)
    1. food_item1 (priority_order 1)
    2. fodd_item2 (priority_order 2)
    3. fodd_item3 (priority_order 3)
  • 饮料(priority_order 2)
    1. Drink_item1 (priority_order 1)
    2. Drink_item2 (priority_order 2)
    3. Drink_item3 (priority_order 3)

现在我需要完全按照上面的顺序在 CGridView 中显示数据。所有食物都排在最前面,按照priority_order排序,饮料排在后面;显然按照他们的顺序。

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',
                ),
      ));

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

4

1 回答 1

7
$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',
            ),
  ));

为订单标准提供第二个参数应该有效

于 2013-05-11T13:48:01.073 回答