我有一个表,其中包含与帖子相关的日志,并且我不希望在删除帖子时删除其数据。
另一方面,我想删除该帖子的所有评论以及其他数据。
我一直在查看文档,但他们没有对此说什么: http://book.cakephp.org/2.0/en/models/deleting-data.html
谢谢。
最佳答案
您至少可以通过两种不同的方式来做到这一点。
On 是当您调用 $this->Post->delete($id, $cascade)
the second parameter is a boolean 时开启显示删除操作是否还应删除任何关联记录 - 以便依赖发布记录:
$this->Post->delete($id, false);
不会删除任何关联记录。 $this->Model->deleteAll(); 也是如此。这是您想要非全局设置它的时候。
Depends 非常重要,因为这个概念也可以在 hasMany
或 hasOne
关系的配置中设置,因此这是默认值删除行为:
public $hasMany = array(
'Log' => array(
'className' => 'Log',
'foreignKey' => 'post_id',
'dependent' => false
)
);
在此示例中,当关联的帖子记录被删除时,日志记录将不会被删除。
关于cakephp - 是否可以自定义 CakePHP 的级联删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603536/