Search code examples
yiiyii-extensions

3 models query data in cgridview using yii framework


how can we accomplish the below query result in cgridview using 3 models.?

select a.id,
   a.name,
   b.group_id,
   c.id,
   c.client_id,
   c.title
from           users_phone_numbers a,
 phone_number_group_assignment b,
                 client_groups c
where    a.id = b.phone_number_id
and      b.group_id=c.id;

plz reply thanks


Solution

  • Use CArrayDataProvider

    $rawData=Yii::app()->db->createCommand('... query ...')->queryAll();
    $dataProvider=new CArrayDataProvider($rawData, array(
        'id'=>'a.id',
        'sort'=>array(
            'attributes'=>array(
                  'a.name, b.group_id, ...',
            ),
         ),
    ));
    

    Pass $dataProvider as the DataProvider to your grid view.