Database CakePHP2:在$this->Model->delete($id)中,删除'dependent'=>false中的hasmany模型
我在CakePHP2.1.5中有一个奇怪的行为 当我删除对正时,删除两件事。理由和相关的文档产品 辩护控制员:Database CakePHP2:在$this->Model->delete($id)中,删除'dependent'=>false中的hasmany模型,database,cakephp,dependencies,models,Database,Cakephp,Dependencies,Models,我在CakePHP2.1.5中有一个奇怪的行为 当我删除对正时,删除两件事。理由和相关的文档产品 辩护控制员: class JustificationsController extends AppController { public function delete($id = null) { $this->Justification->id = $id; if ($this->Justification->delete()) {
class JustificationsController extends AppController {
public function delete($id = null) {
$this->Justification->id = $id;
if ($this->Justification->delete()) {
$valorNull = null;
$this->Justification->DocumentsProduct->updateAll(
array('DocumentsProduct.justification_id' => $valorNull),
array('DocumentsProduct.justification_id' => $id));
}
}
}
理由模型:
public $hasMany = array(
'DocumentsProduct' => array(
'className' => 'DocumentsProduct',
'foreignKey' => 'justification_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
文档产品模型:
public $belongsTo = array(
'Justification' => array(
'className' => 'Justification',
'foreignKey' => 'justification_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
因此,如果在“对正/删除”视图中删除对正,则会同时删除对正和DocumentProduct。但依赖者是错误的。
我尝试了$this->Justification->delete$id,false,但仍然会删除DocumentsProduct
我做错了什么
更新:这是查询日志的一部分:
(int) 130 => array(
'query' => 'SELECT COUNT(*) AS `count` FROM `icorvera_sgcp`.`approvals_documents_products` AS `ApprovalsDocumentsProduct` WHERE `ApprovalsDocumentsProduct`.`id` = '52d00c27-4d84-47bc-9c47-169cc4460461'',
'params' => array(),
'affected' => (int) 1,
'numRows' => (int) 1,
'took' => (float) 1
),
(int) 131 => array(
'query' => 'DELETE `ApprovalsDocumentsProduct` FROM `icorvera_sgcp`.`approvals_documents_products` AS `ApprovalsDocumentsProduct` WHERE `ApprovalsDocumentsProduct`.`id` = '52d00c27-4d84-47bc-9c47-169cc4460461'',
'params' => array(),
'affected' => (int) 1,
'numRows' => (int) 1,
'took' => (float) 1
),
(int) 132 => array(
'query' => 'DELETE `DocumentsProduct` FROM `icorvera_sgcp`.`documents_products` AS `DocumentsProduct` WHERE `DocumentsProduct`.`id` = '52d00c27-a1f4-4756-a126-169cc4460461'',
'params' => array(),
'affected' => (int) 1,
'numRows' => (int) 1,
'took' => (float) 1
),
(int) 133 => array(
'query' => 'DELETE `Justification` FROM `icorvera_sgcp`.`justifications` AS `Justification` WHERE `Justification`.`id` = '529e1dbc-bbc0-4be1-828d-09c8c4460461'',
'params' => array(),
'affected' => (int) 1,
'numRows' => (int) 1,
'took' => (float) 1
)
),
'count' => (int) 134,
'time' => (float) 343
)
我也有类似的问题
经过一些调查,我注意到在数据库本身中,我对“onDelete事件”进行了“级联”操作。这将覆盖cakephp行为。表之间是否有数据库内链接?没有。我还得到了蛋糕查询的日志你能添加批准文档产品模型关系吗?