Невозможно удалить строку из метода 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().

Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам