1

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

  • 当我删除没有子节点的节点然后$node->undelete()一切正常时,节点正在从软删除中恢复。
  • 但是,如果一个节点有子节点并删除它,那么如果我这样做$node->undelete(),它只会恢复没有任何子节点的节点......

有什么想法或解决方案吗?

4

1 回答 1

0

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

SubTableQuery::create()
  ->includeDeleted()
  ->filterByParentId($parentRecord->getId())
  ->unDelete();
$parentRecord->unDelete();
于 2013-01-09T16:24:46.420 回答