1
0
mirror of synced 2025-01-31 12:32:59 +03:00

added copydeep function

This commit is contained in:
runa 2007-04-12 18:32:07 +00:00
parent 0929be6454
commit cd8452aa8b

View File

@ -1196,6 +1196,27 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
} }
return $ret; return $ret;
} }
/**
* copyDeep
* returns a copy of this object and all its related objects
*
* @return Doctrine_Record
*/
public function copyDeep(){
$newObject = $this->copy();
foreach( $this->getTable()->getRelations() as $relation ) {
if ( $relation->getType() == Doctrine_Relation::MANY_COMPOSITE ||
$relation->getType() == Doctrine_Relation::ONE_COMPOSITE ) {
$alias = $relation->getAlias();
foreach ( $this->$alias as $relatedObject ) {
$newRelatedObject = $relatedObject->copyDeep();
$newObject->{$alias}[] = $newRelatedObject;
}
}
}
return $newObject;
}
/** /**
* assignIdentifier * assignIdentifier
* *