Невозможно удалить строку из метода beforeSave в CakePHP 2.4+
Я не могу удалить в своем методе beforeSave() в более новой версии Cake, но он работает с более ранними библиотеками (например, версия 2.2)
Кто-нибудь знает, как заставить его работать снова, не изменяя Cake libs?
Код:
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);
Любая помощь была бы великолепна.
1 ответ
Я получил это решено, в более новых библиотеках для тортов вы не можете удалить из beforeSave(), поэтому я переместил его к следующему подходящему методу, в моем случае это было beforeValidate().
Надеюсь, это кому-нибудь поможет.