我不能在较新版本的 Cake 的 beforeSave() 方法中删除,但它适用于较早的库(例如 2.2 版)
有谁知道如何在不改变 Cake 库的情况下让它再次工作?
代码:
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);
任何帮助都会很棒。