Cgridview Group_By Problem

Hi guys,

I have a pagination problem when I use group_by sentence with CactiveDataProvider. If I don’t use “group_by” pagination works perfectly.

My query which is in controller




$giden_sor = new CActiveDataProvider('Evraklar',array(

			'criteria'=>array(

				'condition'=>'kimden_id='.$birim_id.' 

				and kimden_id_tip='.$tip.' 

				and ( evrak_durum=2 or evrak_durum=3) 

				and yil='.$yil.'  

				and kayit_tipi!=1

				group by ana_evrak_id', 

				'order'=>'evrak_id ASC'

				),

				'pagination'=>array(

					'pageSize'=>10,

				),

			));



and my gridview which is in view




<?php 

$this->widget('zii.widgets.grid.CGridView', array(

   'id'=>'kurum_disi_genel_gelen_numara_almis-grid',

   'dataProvider'=>$kurum_disi_genel_gelen_numara_almis,

   'summaryText' => '',

   'enableSorting'=>True,

   'cssFile'=>'/css/grid.css',

'enablePagination'=>true,

   'columns'=>array(

    array(

         'name'=>'evrak_id',

         'header'=>'Evrak No',

         'value'=>'$data->evrak_id',

      ),

    array(

         'name'=>'geb_giris_no',

         'header'=>'Evr. Kayıt. Gel. Sayısı',

         'value'=>'$data->geb_giris_no',

      ),

    array(

         'name'=>'tarih',

         'header'=>'Tarih',

         'value'=>'Evraklar::NavicatToTarih($data->tarih)',

      ),

   array(

         'name'=>'konu',

         'header'=>'Konu',

         'value'=>'$data->konu',

      ),

   array(

         'name'=>'kimden_id',

         'header'=>'Kimden',

         'value'=>'Evraklar::getUnitName($data->kimden_id,$data->kimden_id_tip)',

      ),

   array(

         'name'=>'geregi_id',

         'header'=>'Gereği',

         'value'=>'Evraklar::getUnitName($data->geregi_id,$data->geregi_id_tip)',

      ),

      array(

         'name'=>'bilgi_id',

         'header'=>'Bilgi',

         'value'=>'Evraklar::getUnitName($data->bilgi_id,$data->bilgi_id_tip)',

      ),

   'gonderi_tarihi',  

   ),

)); 

?>



What is my wrong ?

Thanks in advance.

You have to use “group” criteria’s key.




$giden_sor = new CActiveDataProvider('Evraklar',array(

                        'criteria'=>array(

                                'condition'=>'kimden_id='.$birim_id.' 

                                and kimden_id_tip='.$tip.' 

                                and ( evrak_durum=2 or evrak_durum=3) 

                                and yil='.$yil.'  

                                and kayit_tipi!=1',

                                'group' => 'ana_evrak_id', 

                                'order'=>'evrak_id ASC'

                                ),

                                'pagination'=>array(

                                        'pageSize'=>10,

                                ),

                        ));



Working perfectly. Thanks in advance…