我有一个表“Topic”,它与模型中的hasMany链接到“Post”。
我无法弄清楚如何一次更新两个表。
这是我的$ this-> request-> data
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 :(得分:0)
您应该使用saveAssociated
$this->Topic->saveAssociated($this->request->data);
答案 1 :(得分:0)
如果使用$this->Topic->save($this->request->data)
,它只会尝试将[Topic]数组保存在数据数组中。
您可以使用$this->Topic->saveAssociated($this->request->data)
或$this->Topic->saveAll($this->request->data)
将保存应用于数据阵列中的其他阵列。 saveAll()
功能涵盖saveAssociated()
和saveMany()
个保存,虽然cakePHP手册建议使用其中任何一个而不是saveAll()
功能