Er.*_*.KT 7 php cakephp model cascading-deletes cakephp-2.3
我想删除所有依赖的rable记录
我的协会
分支模型
var $hasMany =array(
'Dealbranch' => array(
'className' => 'Dealbranch',
'foreignKey' => 'DLB_BR_ID',
'dependent' =>true
)
);
Run Code Online (Sandbox Code Playgroud)
Dealbranch模型
var $belongsTo = array(
'Deal' => array(
'className' => 'Deal',
'foreignKey' => 'DL_ID',
'dependent' => true
),
'Branch' => array(
'className' => 'Branch',
'foreignKey' => 'DLB_BR_ID',
)
);
Run Code Online (Sandbox Code Playgroud)
交易模式
var $hasMany = array(
'Dealbranch' => array(
'className' => 'Dealbranch',
'foreignKey' => 'DLB_DL_ID',
)
);
Run Code Online (Sandbox Code Playgroud)
在我使用过的控制器中
$this->Branch->delete($id,true);
Run Code Online (Sandbox Code Playgroud)
现在这里我正在删除分支,因此依赖的dealbranch已成功删除,但没有删除任何交易记录
我想要:我正在删除分支,所以应删除所有依赖的dealbranch并删除所有依赖(依赖于dealbranch)交易记录
这里Deal是Dealbranch的孩子,Dealbranch是分店的孩子
现在,对于一个分支,Dealbranch中有多个记录,而对于多个Dealbranch,Deal中有一条记录

请帮我.我正在使用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
)
);
Run Code Online (Sandbox Code Playgroud)
或者你可以尝试这样
更新:
根据您的要求,Deal 是 Dealbranch 的子级,Dealbranch 是分支的子级,您的模型关联应该是这样的。
交易分支模型应该是这样的。
DealBranch模型
var $belongsTo = array(
'Branch' => array(
'className' => 'Branch',
'foreignKey' => 'DLB_BR_ID',
)
);
var $hasMany = array(
'Deal' => array(
'className' => 'Deal',
'foreignKey' => 'DL_ID',
'dependent' => true
),
);
Run Code Online (Sandbox Code Playgroud)
交易模型应该是这样的。
交易模式
var $belongsTo = array(
'Dealbranch' => array(
'className' => 'Dealbranch',
'foreignKey' => 'DLB_DL_ID',
)
);
Run Code Online (Sandbox Code Playgroud)