2016-10-18 8 views
0

У меня есть таблица «Тема», которая связана с «Опубликовать» с hasMany в модели.Невозможно обновить несколько записей в таблицах с hasMany в CakePhp

Я не могу понять, как обновить сразу две таблицы.

Это мой $ this-> request-> Данные

Array 
(
    [Topic] => Array 
     (
      [id] => 1 
      [topic_title] => This is my topic 
    ) 

    [Post] => Array 
     (
      [1] => Array 
       (
        [id] => 1 
        [title] => Blah 
        [message] => My message 
      ) 

      [2] => Array 
       (
        [id] => 2 
        [title] => Second Blah 
        [message] => Second My message 
      ) 

    ) 

) 

Я пытался сделать так:

$this->Topic->save($this->request->data); 

$this->loadmodel('Post'); 

$this->Post->updateAll($this->request->data, array('Post.topic_id' => $id)); 

Это явно неправильный подход, однако, я изо всех сил, чтобы найти хороший способ сделать это.

ответ

0

Вы должны использовать saveAssociated

$this->Topic->saveAssociated($this->request->data); 
0

Если вы используете $this->Topic->save($this->request->data) это будет только пытаться сохранить [Тема] массива внутри вашего массива данных.

Вы можете использовать $this->Topic->saveAssociated($this->request->data) или $this->Topic->saveAll($this->request->data) для сохранения на других массивах внутри вашего массива данных. Функция saveAll() охватывает как saveAssociated(), так и saveMany() сохраняет, хотя руководство cakePHP предлагает использовать один из них вместо функции saveAll()

 Смежные вопросы

  • Нет связанных вопросов^_^