0

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

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

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

有没有其他方法可以在不直接使用 SQL 的情况下检索它?

编辑:我正在使用 cakephp-2.4.9

4

1 回答 1

0

一种方法是暂时禁用该特定查找调用的行为,例如

$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);

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

于 2014-08-15T09:23:59.307 回答