burriko / cake-soft-delete
CakePHP模型的软删除。
dev-master / 2.0.x-dev
2013-08-14 09:10 UTC
Requires
- php: >=5.3.0
- composer/installers: *
This package is not auto-updated.
Last update: 2024-09-23 15:10:24 UTC
README
CakePHP 2.x模型的软删除。透明地将记录标记为已删除,而不是实际删除它们。还将从查找操作中隐藏已删除的记录。
安装
如果你使用composer,只需将以下内容添加到你的require块中。
"burriko/cake-soft-delete": "2.0.*@dev"
如果不使用,则将此目录的内容克隆/复制到app/Plugins/CakeSoftDelete。
配置
-
将以下行添加到你的app/Config/bootstrap.php。
CakePlugin::load('CakeSoftDelete');
-
将你的AppModel更改为扩展SoftDeletableModel。你还需要添加适当的App::uses来告诉Cake在哪里加载SoftDeletableModel。基本上,你的AppModel类应该从以下内容开始。
<?php App::uses('SoftDeletableModel', 'CakeSoftDelete.Model'); class AppModel extends SoftDeletableModel
-
在应该进行软删除的模型中添加
public $actsAs = array('CakeSoftDelete.SoftDeletable');
-
你的模型数据库模式需要一个字段来作为记录是否被删除的标志。默认情况下,此字段名为'deleted',但可以在行为设置中更改。该字段可以是布尔型或日期时间型(在这种情况下,它将设置为字段被删除的时间)。
用法
现在当你从这个模型中删除记录时,它们应该只是软删除。软删除的记录将不会出现在查找函数的结果中。
要包括已删除记录,请调用模型上的includeDeletedRecords()方法。然后你可以调用excludeDeletedRecords()来再次隐藏它们。
限制
删除将像往常一样级联到相关模型,但HABTM关系除外。这对我来说 hasn't been a problem but is something to be aware of.