我正在尝试使用 cakeDC/utils SoftdeleteBehavior,以允许用户恢复已删除的模型实例。
到目前为止,软删除工作正常,但我也希望能够查看已删除的模型实例。
我尝试使用 findById($id) 查找实例,但它调用了检查行为的 beforeFind 方法,deleted = true
因此不返回该实例。
有没有其他方法可以在不直接使用 SQL 的情况下检索它?
编辑:我正在使用 cakephp-2.4.9
一种方法是暂时禁用该特定查找调用的行为,例如
$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);
也可能工作。但是,这是否适用当然取决于您的具体用例。