public function save($con = null) { $con = Propel::getConnection(); try { $con->begin(); $ret = parent::save($con); // update agent_has_user table $userId = sfContext::getInstance()->getUser()->getSubscriberId(); $agentId = $this->getId(); $mode = sfContext::getInstance()->getRequest()->getParameter('action'); //see if there's already an entry in the table and if not, add it $criteria = new Criteria(); $criteria->add(AgentHasUserPeer::USER_ID, $userId); $AgentHasUsersColl = $this->getAgentHasUsers($criteria, $con); if (!count($AgentHasUsersColl)) { $agentUser = new AgentHasUser(); $agentUser->setAgentId($agentId); $agentUser->setUserId($userId); $agentUser->save($con); } $con->commit(); sfContext::getInstance()->getUser()->setHasAgents(); return $ret; } catch (Exception $e) { $con->rollback(); throw $e; } }
/** * Returns a peer instance associated with this om. * * Since Peer classes are not to have any instance attributes, this method returns the * same instance for all member of this class. The method could therefore * be static, but this would prevent one from overriding the behavior. * * @return AgentPeer */ public function getPeer() { if (self::$peer === null) { self::$peer = new AgentPeer(); } return self::$peer; }