cakephp - 是否可以自定义 CakePHP 的级联删除?

标签 cakephp cakephp-2.0 cakephp-2.1 cascading-deletes cakephp-2.2

我有一个表,其中包含与帖子相关的日志,并且我不希望在删除帖子时删除其数据。

另一方面,我想删除该帖子的所有评论以及其他数据。

我一直在查看文档,但他们没有对此说什么: 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 非常重要,因为这个概念也可以在 hasManyhasOne 关系的配置中设置,因此这是默认值删除行为:

public $hasMany = array(
    'Log' => array(
        'className' => 'Log',
        'foreignKey' => 'post_id',
        'dependent' => false
    )
);

在此示例中,当关联的帖子记录被删除时,日志记录将不会被删除。

关于cakephp - 是否可以自定义 CakePHP 的级联删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603536/

相关文章:

javascript - $http获取返回html源代码angularjs

php - 在 Windows 的 WAMP 上运行 CakePHP 2.x 时,如何修复 CAKE_CORE_INCLUDE_PATH 的错误?

mysql - foreach 不打印 cakephp 中的查询结果

javascript - JS 添加新字段后 cakephp 表单未正确提交

php - PHP 中的 EPUB 阅读器/查看器

mysql - 蛋糕PHP : populating 2 fields with the same foreign key and write to database

cakephp - 如何在 cakephp 2.x 版本中加密密码

php - CakePHP 2.1.3 单个页面的 SEO 元描述与 default.ctp

validation - 在验证时动态切换错误消息?

php - Android 应用程序的身份验证模型