SoftdeleteBehavior但仍然被删除的实例

时间:2014-08-15 08:25:22

标签: cakephp cakedc

我正在尝试使用cakeDC / utils SoftdeleteBehavior,以允许用户恢复模型的已删除实例。

到目前为止,软删除工作正常,但我也希望能够查看 已删除的模型实例。

我尝试使用findById($ id)查找实例,但它调用行为的beforeFind方法,该方法检查deleted = true,因此不返回实例。

有没有其他方法可以直接检索它而不直接使用SQL?

编辑:我正在使用cakephp-2.4.9

1 个答案:

答案 0 :(得分:0)

一种方法是临时disable the behavior用于特定的查找呼叫,例如

$enabled = $YourModel->Behaviors->enabled('SoftDelete');
if($enabled) {
    $YourModel->Behaviors->disable('SoftDelete');
}

$result = $YourModel->findById($id);

if($enabled) {
    $YourModel->Behaviors->enable('SoftDelete');
}

从查看代码时,还应该可以通过其标志状态显式检索记录,例如

$YourModel->findByIdAndDeleted($id, true);

也可能有用。但是,这当然是否适用取决于您的具体用例。