Exemplo n.º 1
0
 /**
  * После физического удаления сообщения методом deleteMsg вызывается данный метод для попытки удалить предка.
  * Если сам предок удалён и у него нет не удалённых потомков, то предок также будет удалён физически.
  * 
  * @param DiscussionMsg $msg - сообщение, удалённое физически
  */
 private function tryCleanParentOf(DiscussionMsg $msg)
 {
     if ($msg->isRoot()) {
         return;
         //---
     }
     if ($this->hasChilds($msg->getParentId())) {
         return;
         //---
     }
     $parent = $this->getMsgById($msg->getParentId());
     if (!$parent->isDeleted()) {
         return;
         //---
     }
     $this->update("delete from {$this->table} where {$this->idColumn}=?", $parent->getId());
     $this->tryCleanParentOf($parent);
 }