Проблема в том что я не могу понять как сделать так что бы искало по зависимому полю и также могло сортировать по нему. Подскажите как сделать.
У меня две таблицы
[sql]CREATE TABLE code (
id int(11) NOT NULL auto_increment,
value varchar(10) default NULL,
PRIMARY KEY (id),
KEY value (value)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251;
CREATE TABLE notice (
id int(11) NOT NULL auto_increment,
code_id int(11) NOT NULL,
surname varchar(70) NOT NULL,
name varchar(70) NOT NULL,
middle varchar(70) NOT NULL,
city varchar(70) NOT NULL,
status varchar(70) NOT NULL,
PRIMARY KEY (id),
KEY code_id (code_id)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=cp1251;[/sql]
В модели notice
public function relations()
{
return array(
'uid'=>array(self::BELONGS_TO, 'сode', 'code_id'),
);
}
public function search()
{
$criteria=new CDbCriteria;
$criteria->compare('surname',$this->surname,true);
$criteria->compare('name',$this->name,true);
$criteria->compare('middle',$this->middle,true);
$criteria->compare('city',$this->city,true);
$criteria->compare('status',$this->status,true);
return new CActiveDataProvider('notice', array(
'criteria'=>$criteria,
));
}
Выводится в отображении вот так ($model=new notice(‘search’))
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'notice-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'name'=>'uid',
'value'=>'$data->uid->value',
'sortable'=>true,
),
'surname',
'name',
'middle',
'city',
'status',
array(
'class'=>'CButtonColumn',
),
),
));