我需要在yii Cgridview中显示最高金额。
我有两个模型:members
和billing
,
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金额 我怎么解决这个问题?
答案 0 :(得分:0)
在模型中定义关系并在您的标准中使用它们。然后将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/
如果该链接无法帮助发布两个表的模型代码,我将尝试提供一些示例代码。