public function createChild(Doctrine_Record $parent, $memberId, $profileId, $optionIds, $values = array()) { $parent->clearChildren(); foreach ($optionIds as $i => $optionId) { $childProfile = new MemberProfile(); $childProfile->setMemberId($memberId); $childProfile->setProfileId($profileId); $childProfile->setProfileOptionId($optionId); if (isset($values[$i])) { $childProfile->setValue($values[$i]); } $childProfile->getNode()->insertAsLastChildOf($parent); $childProfile->save(); } }