2014-09-04 106 views
0

我不能在我的beforeSave()方法刪除蛋糕的新版本,但它與早期的版本庫的工作(如2.2版本)無法從beforeSave方法刪除行2.4 +

有誰知道如何得到它再次工作而不改變蛋糕庫?

代碼:

public function beforeSave($options = array()) { 

if(!empty($this->data['Attachment']['delete']) && (int) $this->data['Attachment']['delete'] === 1) { 
     if($this->deleteFromDb((int) $this->data['Attachment']['id'])) { 
      $this->data['Attachment'] = array(); 
      return true; 
     } else { 
      return false; 
     } 
    } 
    return true; 
} 



public function deleteFromDb($id) { 
    if ($this->delete($id)) { 
     return true; 
    } else { 
     return false; 
    } 
} 

下面一行返回false,但我不明白爲什麼:

if($this->deleteFromDb((int) $this->data['Attachment']['id'])) 

如果我用下面替換它仍然返回false:

if($this->delete((int) $this->data['Attachment']['id'])) 

如果我從控制器訪問該方法,它將返回true,例如

$this->Model->deleteFromDb($id); 

任何幫助都會很好。

回答

0

我得到了這個解決方案,在更新的蛋糕庫中,你不能從beforeSave()中刪除,所以我把它移到了下一個適當的方法,在我的情況下這是beforeValidate()。

希望這可以幫助別人。

+0

我有同樣的問題,但我認爲把它放在'beforeValidate'不是真的正確,我真的想要刪除這些行,即使其他數據無效? – 2015-11-09 09:51:13