CakePHP 2.x: получение пустой страницы при загрузке поведения SoftDelete

Я хочу реализовать Soft Delete в моем проекте. Не удалось найти надежную рецензию на то же самое. Следующее — единственное, что я получил ..

http://www.logicsart.com/cakephp/soft-delete-in-cakephp/

Во всяком случае, я добавил соответствующие столбцы в моей базе данных и
Я попытался реализовать это, добавив следующий код в моей AppModel

public function exists($id = null) {
if ($this->Behaviors->attached('SoftDelete')) {
return $this->existsAndNotDeleted($id);
} else {
return parent::exists($id);
}
}

public function delete($id = null, $cascade = true) {
$result = parent::delete($id, $cascade);
if ($result === false && $this->Behaviors->enabled('SoftDelete')) {
return $this->field('deleted', array('deleted' => 1));
}
return $result;
}

Следуя, по моему bootstrap.php

CakePlugin::loadAll();

И следуя в моей модели,

public $actsAs = array('SoftDelete');

Я также включил SoftDeleteBehavior.php в папке app / Model / Behavour.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я включаю $ actAs в мою модель, на странице не отображаются никакие данные, и, если я ее исключаю, мягкое удаление не работает.
Если у вас есть более конкретный источник для реализации Soft delete, это также поможет, любая помощь будет оценена. Спасибо!

0

Решение

Прежде всего, проверьте опечатку в папке вашего поведения. Вы написали

/app/Model/Behavour

когда это должно быть

/app/Model/Behavior

Далее версия SoftDelete вы используете, вероятно, устарели и могут иметь ошибки, которые были исправлены в последних версиях.

Вы должны установить CakeDC/utils с композитором:

"require": {
"cakedc/utils": "master"}

CakePlugin::loadAll() требуется, когда вы решите установить как плагин, но не так, если вы загружаете отдельный класс в app/Model/Behavior папка.

Также не забудьте создать два поля в таблице базы данных: deleted TINYINT(1) а также deleted_date DATETIME,

Не забудьте включить отладку на сервере разработки, установив

Configure::write('debug', 2);

в app/Config/core.php,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]