Я не могу удалить в моем BeforeSave() в новой версии торт, но он работает с earler LIBS (например, версия 2.2)Невозможно удалить строку из метода BeforeSave в CakePHP 2.4+
Кто-нибудь знает, как получить его работая снова без изменения 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;
}
}
Следующая строка возвращает ложь, но я не понимаю, почему:
if($this->deleteFromDb((int) $this->data['Attachment']['id']))
Если я заменить его на следующий он все еще возвращает ложь:
if($this->delete((int) $this->data['Attachment']['id']))
Если я получаю доступ к методу с контроллера, он возвращает true, например
$this->Model->deleteFromDb($id);
Любая помощь вообще была бы замечательной.
У меня такая же проблема, но я думаю, что положить ее в 'beforeValidate' не совсем правильно, действительно ли я хочу удалить эти строки, даже если другие данные недействительны? –