Doctrine\ODM\MongoDB\UnitOfWork::cascadeRemove PHP Method

cascadeRemove() private method

Cascades the delete operation to associated documents.
private cascadeRemove ( object $document, array &$visited )
$document object
$visited array
    private function cascadeRemove($document, array &$visited)
    {
        $class = $this->dm->getClassMetadata(get_class($document));
        foreach ($class->fieldMappings as $mapping) {
            if (!$mapping['isCascadeRemove']) {
                continue;
            }
            if ($document instanceof Proxy && !$document->__isInitialized__) {
                $document->__load();
            }
            $relatedDocuments = $class->reflFields[$mapping['fieldName']]->getValue($document);
            if ($relatedDocuments instanceof Collection || is_array($relatedDocuments)) {
                // If its a PersistentCollection initialization is intended! No unwrap!
                foreach ($relatedDocuments as $relatedDocument) {
                    $this->doRemove($relatedDocument, $visited);
                }
            } elseif ($relatedDocuments !== null) {
                $this->doRemove($relatedDocuments, $visited);
            }
        }
    }
UnitOfWork