2014-03-27 16 views
0

我在CakePHP的2.1.5

一個怪異的行爲當我刪除的理由,刪除兩件事。理由和DocumentsProduct關聯。

理據控制器:

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' => '' 
    ) 
); 

DocumentsProduct型號:

public $belongsTo = array( 
    'Justification' => array(
    'className' => 'Justification', 
    'foreignKey' => 'justification_id', 
    'conditions' => '', 
    'fields' => '', 
    'order' => '' 
    ) 
); 

所以,如果我的理由刪除理由/刪除視圖,同時刪除,理由和DocumentProduct。但是,依賴者是虛假的。 我嘗試$ this-> Justification-> delete($ id,false),但仍然刪除DocumentsProduct。

我做錯了什麼?

UPDATE:這是查詢日誌的部分:

(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 
) 
+0

你有沒有在數據庫表之間的連接? – walkingRed

+0

都能跟得上。我還得到了蛋糕的查詢日誌 – JuanEs1eban

+0

您可以添加ApprovalsDocumentsProduct模型關係嗎? – walkingRed

回答

0

我有一個類似的問題。

經過一番調查後,我注意到,在數據庫本身我已經爲「onDelete」事件「級聯」的行動。這是覆蓋CakePHP的行爲。