Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii:多订单条件_Php_Yii - Fatal编程技术网

Php Yii:多订单条件

Php Yii:多订单条件,php,yii,Php,Yii,我使用CActiveDataprovider显示来自不同表的数据。现在我遇到了一个问题。我有两个表(items和categories),它们都有priority_order列,我需要按这两列的顺序显示数据 例如:有两个类别和六个项目属于这些类别: 食物(优先顺序1) 食品项目1(优先顺序1) fodd_项目2(优先顺序2) fodd_项目3(优先顺序3) 饮料(优先顺序2) 饮料项目1(优先顺序1) 饮料项目2(优先顺序2) 饮料项目3(优先顺序3) 现在,我需要在CGridView中按

我使用CActiveDataprovider显示来自不同表的数据。现在我遇到了一个问题。我有两个表(items和categories),它们都有priority_order列,我需要按这两列的顺序显示数据

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

  • 食物(优先顺序1)
  • 食品项目1(优先顺序1)
  • fodd_项目2(优先顺序2)
  • fodd_项目3(优先顺序3)
  • 饮料(优先顺序2)
  • 饮料项目1(优先顺序1)
  • 饮料项目2(优先顺序2)
  • 饮料项目3(优先顺序3)
现在,我需要在CGridView中按照上面的顺序显示数据。所有的食物都会排在第一位,并按优先顺序排序,饮料会排在后面;显然是按照他们的顺序

ItemsController
中,我正在尝试下面的代码(目前仅按类别排序)

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

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

为订单标准提供第二个参数应该会起作用

为什么不按项目提供第二个订单?它是这样工作的吗??这是否会取代第一个order语句,并将仅按项订购数据提供程序?不,不会。至少要试一下,对不起。那确实有效。用不同的方式思考这真的很容易。我在考虑更复杂的答案,甚至没有考虑过这种方式。
$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',
            ),
  ));