我有这个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->saveAssociated($this->request->data);
但是,如果我也希望能够添加和删除此主题的帖子,我该怎么办?
答案 0 :(得分:1)
保持相同的结构,你可以做_pad_nans
,它会在数据数组中添加任何新的($this->Topic->saveAssociated($this->request->data);
或未设置的)项目。
关于删除,我知道的唯一一个同时删除的情况是HABTM标记为'id' => NULL
时。否则,您需要执行'unique' => true
我可以考虑创建一个新数组来保存你想要删除的数组并将它们作为deleteAll函数的条件发送。
答案 1 :(得分:0)
来自CakePHP 2 Book
delete(integer $id = null, boolean $cascade = true);
删除$ id标识的记录。默认情况下,还会删除记录 取决于指定要删除的记录。
例如,删除与许多Recipe绑定的用户记录时 记录(用户'hasMany'或'hasAndBelongsToMany'食谱):
- 如果$ cascade设置为true,如果模型的dependent-value设置为true,也会删除相关的Recipe记录。
- 如果$ cascade设置为false,则在删除用户后,配方记录将保留。
<强> http://book.cakephp.org/2.0/en/models/deleting-data.html 强>