Всем доброго времени суток!
Возникла небольшая проблема с отображением в одном CGridView данных из двух связанных таблиц 1к1. Заключается она в том, что над колонками связанной таблицы не показываются поля для фильтрации. При этом сортировка работает.
Немного кода (только то, что добавлял я, остальное автоматически через gii):
///////////////////////////////
//Модель 1 (Clients)
/**
* @property string $id
* @property string $name
*/
class Clients extends CActiveRecord
{
.....
public function relations()
{
return array(
'stats'=>array(self::HAS_ONE, 'ClientStats', 'client_id'),
);
}
.....
public function search()
{
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id,true);
$criteria->compare('name',$this->name,true);
$criteria->with = array('stats');
$criteria->compare('stats.stat1',$this->stats->stat1);
$criteria->compare('stats.stat2',$this->stats->stat2);
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
'sort'=>array('attributes'=>array(
'id',
'name',
'stats.stat1',
'stats.stat2',
)),
));
}
}
///////////////////////////////
//Модель 2 (ClientStats)
/**
* @property string $client_id
* @property integer $stat1
* @property integer $stat2
*/
class ClientStats extends CActiveRecord
{
.....
}
///////////////////////////////
// файл views/clients/admin.php
.....
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'clients-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'name',
'stats.stat1',
'stats.stat2',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
.....
Спасибо!