2013-09-30 3 views
1

Мне нужно показать наибольшее количество сверху на yii Cgridview.Сортировка по yii Cdbcriteria с суммой

У меня есть две модели: members и billing, member_id - это ключ foregion в биллинговой модели. My Model Функция:

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

Определите отношения в своих моделях и используйте их в соответствии с вашими критериями. Затем передайте объект 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/

Если эта ссылка не помогла опубликовать ваши коды моделей для обеих таблиц, и я попытаюсь предоставить примерный код.

+0

Спасибо, я работаю над этим. – user2703611

Смежные вопросы