Я пытаюсь обновить пароль для двух разных моделей / таблиц в CakePHP.Я могу обновить его в родительской модели, но не во второй.
Models:
Users (hasOne GameProfile) PK=id
Gameprofiles (belongsTo User) FK=user_id
Вот урезанная версия моей функции в Users_controller.php:
function updatepass() {
if (!empty($this->data)) {
$this->User->id = $this->Auth->user('id');
$this->User->saveField('sha1password', $this->Auth->password($this->data['User']['newpass']));
$this->User->Gameprofile->saveField('plainpassword', $this->data['User']['newpass']);
}
}
КогдаЯ выполняю функцию, таблица пользователей обновляется нормально.Но таблица gameprofile не обновляется, скорее Cake делает вставку.
SQL Query Log:
1195 Query UPDATE `users` SET `sha1password` = 'e9443e9f5e1a07832aad1b2f84de1a666daf89b5' WHERE `users`.`id` = 30
1195 Query INSERT INTO `gameprofiles` (`plainpassword`) VALUES ('abc')
Есть ли способ заставить CakePHP выполнить обновление с использованием saveField на модели с атрибутом ownTo?
Я пробовал различные способы обращения к user_id до выполнения второгоsaveField, но просто не могу найти выигрышную комбинацию.
Любая помощь очень ценится!