我想在我的项目中实现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时,页面不显示任何数据,如果我将其排除,则软删除不起作用。 如果你有一个更具体的来源来实现软删除,这也会有所帮助,任何帮助将不胜感激。谢谢!
答案 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_date
和DATETIME
Configure::write('debug', 2);
。
请记住通过设置
在开发服务器上启用调试app/Config/core.php
[MvxFromStoryboard]
中的。