Добрый вечер. Столкнулся с такой проблемой:
есть таблицы ‘customers’, ‘rooms’, ‘rooms_has_customers’, последняя является связующей для первых двух.
При записи в ‘customers’ так же должна добавляться запись в ‘rooms_has_customers’, чтобы обозначить к какой комнате относится посетитель.
отношения в ‘customers’:
public function relations() {
return array(
'rooms' => array(self::MANY_MANY, 'Rooms', '{{rooms_has_customers}}(rooms_id, customers_id)'),
);
}
отношения в ‘rooms’:
public function relations() {
return array(
'customers' => array(self::MANY_MANY, 'Customers', '{{rooms_has_customers}}(rooms_id, customers_id)'),
);
}
записываю таким образом:
public function actionAdd($number = null) {
$customers = new Customers();
if(isset($_POST['Customers'])) {
$customers->setAttributes($_POST['Customers']);
if($customers->validate()) {
if($customers->save()) {
Yii::app()->user->setFlash('success', 'Постоялец успешно добавлен.');
}
}
}
$this->render('add', array('customer' => $customers));
}
Результат - в таблицу ‘customers’ добавляется запись с null везде.
Попробовал воспользоваться экстеншеном CAdvancedArBehavior.
Получаю ошибку:
CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or
update a child row: a foreign key constraint fails (`hotel`.`rooms_has_customers`, CONSTRAINT
`fk_rooms_has_customers_customers1` FOREIGN KEY (`customers_id`) REFERENCES `customers` (`id`) ON DELETE CASCADE ON UPDATE
CASCADE)
зашел в тупик… может кто-нибудь подсказать как бороться?