在 yii Cdb 标准中与 sum(amount) 进行排序


Sorting in yii Cdbcriteria with sum(amount)

我需要在yii Cgridview的顶部显示最高金额。

我有两种型号:membersbilling, member_id是计费模型中的关键。我的模型函数:

   public function getImportantMembers(){       
    $criteria = new CDbCriteria;        
    $criteria->select ='t.*,b.billing_id,b.amount,b.billing_date,b.member_id,b.billing_status , sum(b.amount) AS totalamount';      
    $criteria->join = 'JOIN billing AS b ON b.member_id = t.id ';
    $criteria->addCondition("b.billing_date > DATE_SUB(NOW(),INTERVAL 2 MONTH)  AND b.billing_status='c' AND b.amount > 150 ");               
    $criteria->group  = 't.id';        
    $criteria->order = " totalamount DESC";                   
    return new CActiveDataProvider(get_class($this),array(
        'pagination'=>array(            
            'pageSize'=> Yii::app()->user->getState('pageSize',Yii::app()->params['defaultPageSize']),),          
            'criteria'=>$criteria,
    ));
}

但此函数未在顶部正确显示最高金额或金额 DESC我该如何解决这个问题?

在模型中定义关系并在条件中使用它们。然后将 CSort 对象传递给 DataProvider,如下所示。只要在模型中定义自定义排序参数,就可以定义它们。

return new CActiveDataProvider( 'Model', array(
    'criteria'=>$criteria,
    'sort'=>array(
        'attributes'=>array(
            ...........
            ...........
            '*',
        ),
    ),
));

有关详细信息,此链接将有所帮助。http://www.yiiframework.com/wiki/281/searching-and-sorting-by-related-model-in-cgridview/

如果该链接无助于发布两个表的模型代码,我将尝试提供一些示例代码。