никак не работает сохранение с отношением многие-ко-многим.
преамбула: есть такие таблицы
CREATE TABLE `employees` (
`id` int(10) unsigned NOT NULL auto_increment,
`first_name` varchar(255) collate utf8_unicode_ci NOT NULL,
`last_name` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `employees_professions` (
`employee_id` int(10) unsigned NOT NULL,
`profession_id` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`employee_id`,`profession_id`),
KEY `FK_professions_employees` (`profession_id`),
CONSTRAINT `FK_professions_employees` FOREIGN KEY (`profession_id`) REFERENCES `professions` (`id`) ON DELETE CASCADE,
CONSTRAINT `FK_employees_professions` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`id`) ON DELETE CASCADE
)
CREATE TABLE `professions` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`title` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `title` (`title`)
)
есть модель Employees c отношениями:
public function relations() {
return array(
'professions' => array(self::MANY_MANY, 'Professions', 'employees_professions(employee_id, profession_id)'),
);
}
есть модель Professions с таким же отношением:
public function relations() {
return array(
'employees' => array(self::MANY_MANY, 'Employees', 'employees_professions(employee_id, profession_id'),
);
}
во форме модели Employee добавляю поле
CHtml::activeDropDownList($model, 'professions', CHtml::listData(Professions::model()->findAll(), 'id', 'title'), array('multiple' => 'multiple'));
список выводится отличный, но при сохранении
$model->attributes = $_POST['Employees'];
$model->attributes не содержит professions. Поле professions указано в safeAttributes. В чем может быть проблема?