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