Propel嵌套集删除软删除

问题描述:

我使用推进和软删除和推进嵌套集。Propel嵌套集删除软删除

  • 当我删除没有孩子的节点,然后做$node->undelete()一切都很好,节点正在从软删除恢复。
  • 但是,如果一个节点有孩子,并删除它,然后,如果我做$node->undelete()它只能恢复没有任何孩子的节点....

任何意见或解决方案?

是的,undelete()方法是非常简单的,它所做的就是取消该确切表上的deleted_at列。但是,如果您在子表上也有软删除行为,则可以这样做:

SubTableQuery::create() 
    ->includeDeleted() 
    ->filterByParentId($parentRecord->getId()) 
    ->unDelete(); 
$parentRecord->unDelete();