Выпадающий Список В Фильтре Cgridview

Добрый день!

Есть 3 таблицы:


CREATE TABLE IF NOT EXISTS `department` (

  `department_id` int(32) NOT NULL AUTO_INCREMENT,

  `department_name` varchar(255) NOT NULL,

  PRIMARY KEY (`department_id`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

CREATE TABLE IF NOT EXISTS `user` (

  `user_name` varchar(15) NOT NULL,

  `user_password` varchar(300) NOT NULL,

  `user_date_create` date NOT NULL,

  `user_date_last_visit` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

  `user_id` int(10) NOT NULL AUTO_INCREMENT,

  `user_role` int(1) NOT NULL,

  `department_id` int(32) NOT NULL,

  PRIMARY KEY (`user_id`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;

CREATE TABLE IF NOT EXISTS `in_out_work` (

  `user_id` int(32) NOT NULL,

  `user_in_work` datetime DEFAULT NULL,

  `user_out_work` datetime DEFAULT NULL,

  `in_out_work_id` int(11) NOT NULL AUTO_INCREMENT,

  PRIMARY KEY (`in_out_work_id`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=61 ;

и relations:

в модели user:


'group' => array(self::BELONGS_TO, 'Group', 'group_id'),

в модели InOutWork:


'user' => array(self::BELONGS_TO, 'User', 'user_id'),

В контроллере InOutWorkController рендерим CGridView и выводим department_name:


'

department' => array(

            'name' => 'in_out_work_id',

            'name' => 'user_id',

            'header' => 'Отдел',

            'type' => 'html',

            'value' => '$data->user->department->department_name',

)



Что написать сделать, чтоб выводился выпадающий список? Точнее он выводится, но нет поиска при выборе значения:


'filter' => CHtml::listData(Department::model()->findAll(), 'department_id', 'department_name'),

Если необходимо править relations моделей или search, напишите поподробней.

Заранее спасибо!

гляньте как тут реализуется сортировка по related model

Related Model

Там реализовано со связью, когда id_author хранится в 2-х таблицах.

Так я тоже могу:


'user_id' => array(

            'header' => 'Пользователь',

            'name' => 'user_id',

            'value' => '$data->user->user_name',

            'filter' => CHtml::listData(User::model()->findAll(), 'user_id', 'user_name'),

        ), 

напишите поподробней, с Yii только знакомлюсь, не догоняю какие-то моменты.

в search кроме добавленной строки с сортировкой - все остальное сгенерил gii




	public function search()

	{


		$criteria=new CDbCriteria;

                $criteria->compare('user_id',$this->user_id);

		$criteria->compare('user_in_work',$this->user_in_work,true);

		$criteria->compare('user_out_work',$this->user_out_work,true);

		$criteria->compare('in_out_work_id',$this->in_out_work_id);

                $criteria->order = 'in_out_work_id DESC';

		return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

		));

	}

}