Привет всем. Долго бьюсь уже с filter для связанных таблиц в cgridview, но он так и не хочет работать.(ввожу в поле поиска нажимаю интер - ноль реакции). Делаю так:
//controller
$model = new Users('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['Users']))
$model->attributes = $_GET['Users'];
$this->render('learner', array(
'model' => $model,
));
//model
//relations
return array( 'child'=>array(self::HAS_ONE, 'Childs', 'uid')
//search делаю для теста, чтобы пока по одному полю искала
public function search() {
$criteria = new CDbCriteria;
$criteria->condition = 'role=:role';
$criteria->params = array(':role' => 'child');
$criteria->with = array( 'child' );
//$criteria->addSearchCondition('child.class', $this->class, true);
$criteria->compare('id', $this->id);
$criteria->compare('firstname', $this->firstname, true);
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'sort' => array(
'attributes' => array(
'id',
'firstname',
'lastname',
'secondname',
'child.class',
'child.school'
)
),
));
}
//представление
<?php
$data= new Users();//::model()->with('child');
$dataProvider=$data->search();
$gridColumns = array(
array('name'=>'id', 'header'=>'#', 'htmlOptions'=>array('style'=>'width: 60px')),
array('name'=>'firstname', 'header'=>'Имя'),
array('name'=>'secondname', 'header'=>'Фамилия'),
array('name'=>'lastname', 'header'=>'Отчество'),
array(
'name'=>'child.school',
'header'=>'Школа',
'value'=>'$data->child->school',
),
array(
'name'=>'child.class',
'header'=>'Класс',
'value'=>'$data->child->class',
//'filter'=> CHtml::activeTextField($data, 'school'),
),
array(
//'name'=>'confirm',
'header'=>'Активация',
'value'=>'$data->child->confirm'
),
array(
'htmlOptions' => array('nowrap'=>'nowrap'),
'class'=>'bootstrap.widgets.TbButtonColumn',
'viewButtonUrl'=>null,
'updateButtonUrl'=>null,
'deleteButtonUrl'=>null,
)
);
$this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
'type' => 'bordered',
'filter' =>$model,
));
?>
Вот. Помогите пожалуйста и заранее спасибо!
P.S. чуть не забыл - пытаюсь добиться поиска хоть по одному полю из основной таблицы - все-равно не работает.