CakePHP 2.x:加载SoftDelete行为时获取空白页面

时间:2015-12-11 05:25:10

标签: php cakephp cakephp-2.0 soft-delete cakephp-2.x

我想在我的项目中实现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');

我还在app / Model / Behavour文件夹中添加了SoftDeleteBehavior.php

我面临的问题是,当我在我的模型中包含$ actsAs时,页面不显示任何数据,如果我将其排除,则软删除不起作用。 如果你有一个更具体的来源来实现软删除,这也会有所帮助,任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

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

/app/Model/Behavour 

什么时候应该

/app/Model/Behavior

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

您应该使用composer:

安装CakeDC/utils
"require": {
    "cakedc/utils": "master"
}
当您选择安装为插件时需要

CakePlugin::loadAll(),但如果将单个类下载到app/Model/Behavior文件夹中则不需要。{p> deleted

另外,不要忘记在数据库表中创建两个字段:TINYINT(1) deleted_dateDATETIME Configure::write('debug', 2);

请记住通过设置

在开发服务器上启用调试
app/Config/core.php
[MvxFromStoryboard]中的