php - 在cakephp中删除多级(链删除)

标签 php cakephp model cakephp-2.3 cascading-deletes

我要删除所有依赖的rable记录

我的协会

分支模型

var $hasMany =array(
    'Dealbranch' => array(
        'className' => 'Dealbranch',
        'foreignKey' => 'DLB_BR_ID',
        'dependent' =>true
    )
 );

Dealbranch 模型

var $belongsTo = array(
    'Deal' => array(
        'className' => 'Deal',
        'foreignKey' => 'DL_ID',
        'dependent' => true
    ),
    'Branch' => array(
        'className' => 'Branch',
        'foreignKey' => 'DLB_BR_ID',
    )
);

交易模式

var $hasMany = array(
    'Dealbranch' => array(
        'className' => 'Dealbranch',
        'foreignKey' => 'DLB_DL_ID',
    )
);

我用过的 Controller

$this->Branch->delete($id,true);

现在我正在删除 branch ,因此成功删除了依赖的 dealbranch 但没有删除任何交易记录

我想:当我删除分支时,所有依赖的 dealbranch 应该被删除并且所有依赖(依赖于 dealbranch)的交易记录应该被删除

这里 Deal 是 Dealbranch 的 child ,Dealbranch 是 branch 的 child

现在,对于一个branch,在Dealbranch中有多条记录,对于多个Dealbranch,在Deal中有一条记录

enter image description here

请帮帮我。我正在使用 cakephp 2

最佳答案

所有与 Branch 关联的模型记录都可以使用

删除

$this->Branch->delete($id,true);

我想如果你想在删除分支记录时删除交易记录,那么你的模型 Branch 应该与 Deal 模型相关联。

试试这样添加

分支模型

var $hasMany =array(
    'Dealbranch' => array(
        'className' => 'Dealbranch',
        'foreignKey' => 'DLB_BR_ID',
        'dependent' =>true
    ),
    'Deal' => array(
        'className' => 'Deal',
        'foreignKey' => 'your_foriegn_key',
        'dependent' =>true
    )

 );

或者你可以这样尝试

更新:

根据您的要求,此处 Deal 是 Dealbranch 的子级,Dealbranch 是分支机构的子级,您的模型关联应该是这样的。

deal分支模型应该是这样的。

DealBranch 模型

var $belongsTo = array(
    'Branch' => array(
        'className' => 'Branch',
        'foreignKey' => 'DLB_BR_ID',
    )
);
var $hasMany = array(
    'Deal' => array(
        'className' => 'Deal',
        'foreignKey' => 'DL_ID',
        'dependent' => true
    ),
);

交易模式应该是这样的

交易模式

var $belongsTo = array(
    'Dealbranch' => array(
        'className' => 'Dealbranch',
        'foreignKey' => 'DLB_DL_ID',
    )
);

关于php - 在cakephp中删除多级(链删除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634792/

相关文章:

php - 检查 session 密码

PHP ldap - 需要强(呃)身份验证

cakephp - 如何在 CakePHP 1.3 中更新 HABTM 关联模型?

javascript - Backbonejs模型.save()的PUT和POST请求

ruby-on-rails - rails : How do I run a before_save only if certain conditions are met?

php - Symfony2 - Doctrine-extension - 用户可登录

php - 在 WordPress 中向编辑器显示仅限管理员的子菜单链接。结果出错

mysql - 吐出与一对多表的 JOIN 匹配的所有层次结构数据

cakephp - CakePHP 3 中的子查询?

python - Django 分层模型列表