CakePHP 2.x:加载SoftDelete行为时得到空白页面


CakePHP 2.x: Getting blank page when loading SoftDelete behavior

我想在我的项目中实现软删除。找不到可靠的书面报告。以下是我唯一得到的东西。。

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文件夹中。

我面临的问题是,当我在模型中包含$actsAs时,页面不会显示任何数据,如果我排除了它,软删除就无法工作。如果你有一个更具体的来源来实现软删除,那也会有所帮助,任何帮助都将不胜感激。谢谢

首先,检查行为文件夹中的拼写错误。你已经写了

/app/Model/Behavour 

什么时候应该是

/app/Model/Behavior

接下来,您使用的SoftDelete版本可能已经过时,并且可能存在在最近版本中修复的错误。

您应该安装带有composer:的CakeDC/utils

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

当您选择作为插件安装时,需要CakePlugin::loadAll(),但如果您将单个类下载到app/Model/Behavior文件夹中,则不需要。

另外,不要忘记在数据库表中创建两个字段:deleted TINYINT(1)deleted_date DATETIME

记住通过设置在开发服务器上启用调试

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

在CCD_ 11中。