gpt4 book ai didi

php - Yii:按条件多重排序

转载 作者:可可西里 更新时间:2023-10-31 22:12:38 25 4
gpt4 key购买 nike

我正在使用 CActiveDataprovider 来显示来自不同表的数据。现在我遇到了一个问题。我有两个表(项目和类别),它们都有 priority_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 中完全按照上面的顺序显示数据。所有的食物都会排在第一位,并按照它们的优先顺序排序,饮料会排在后面;显然是按照他们的顺序。

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

为订单标准提供第二个参数应该可行

关于php - Yii:按条件多重排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com