added copydeep function
This commit is contained in:
parent
0929be6454
commit
cd8452aa8b
@ -1196,6 +1196,27 @@ abstract class Doctrine_Record extends Doctrine_Access implements Countable, Ite
|
||||
}
|
||||
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
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user