如果我有一个 PHP Doctrine 对象充当 SoftDelete,是否可以在某些查询的结果中包含已删除的项目?我正在寻找的是这样的东西......
$q = Doctrine_Query::create()
->select('*')
->from('Test t')
->where('id < ?', 25)
*->includeDeleted()*;
对于我希望排除已删除记录的大多数查询,这样的事情会很有用,但有时(例如,对于管理员)我希望能够包含已被软删除的记录。是否有一些使用 SoftDelete 的好方法可以做到这一点,或者我应该简单地在大多数查询中添加一个额外的 where 子句?
最佳答案
粗略地看一下源代码 here 和 here ,这个功能似乎不是由 SoftDelete
行为提供的。您必须按照您的建议手动添加 where
子句。
(我可能错了,但我很确定 Doctrine_Query
不能像使用 Doctrine_Record
那样通过行为动态扩展。你总是可以编写一个特殊的 Doctrine_Query
子类来添加 includeDeleted()
,但这似乎比它更有值(value):) )
关于PHP Doctrine SoftDelete - 包括已删除的记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1364155/