Проблема в том что я не могу понять как сделать так что бы искало по зависимому полю и также могло сортировать по нему. Подскажите как сделать.
У меня две таблицы
[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',
),
),
));