Exemplo n.º 1
0
 /**
  * adds a reference track from an object to another if that reference does not already exist
  * expects objects or arrays in the form array(id, 'ModelName')
  */
 public static function addReference($mFromObject, $mToObject)
 {
     if ($mFromObject instanceof BaseObject && $mFromObject->isNew()) {
         self::$aUnsavedReferences[] = array($mFromObject, $mToObject);
         return;
     }
     self::prepareObjectArgument($mFromObject);
     self::prepareObjectArgument($mToObject);
     if (self::referenceExists($mFromObject, $mToObject)) {
         return;
     }
     $oReference = new Reference();
     $oReference->setFromId($mFromObject[0]);
     $oReference->setFromModelName($mFromObject[1]);
     $oReference->setToId($mToObject[0]);
     $oReference->setToModelName($mToObject[1]);
     try {
         $oReference->save();
     } catch (PropelException $ex) {
         if ($ex->getCause() instanceof NotPermittedException) {
             //Silently discard NotPermittedException because the FromObject won’t be saved either
         } else {
             throw $ex;
         }
     }
 }