Exemple #1
0
 /**
  * Return the insert relation query.
  * @param type $entity
  * @param Relation $relation
  * @return string $query.
  */
 public static function buildRelationQuery($entity, Relation $relation)
 {
     $relQuery = "";
     $getid = "getId";
     if ($relation->getCardinality() == Relation::$manyToMany) {
         $m = "get" . $relation->getName();
         $relQuery .= "INSERT INTO " . $relation->getTable() . " (" . $relation->getLocalColumn() . ", " . $relation->getForeignColumn() . ") ";
         $relQuery .= "VALUES (:" . $relation->getLocalColumn() . ", :" . $relation->getForeignColumn() . ");";
     }
     if ($relation->getCardinality() == Relation::$oneToMany) {
         $relMapper = MapperBuilder::buildFromName($this->mapping, $relation->getEntity());
         $m = "get" . $relation->getName();
         foreach ($entity->{$m}() as $rel) {
             $setid = "set" . $relMapper->getNameForColumn($relation->getForeignColumn());
             $rel->{$setid}($entity->{$getid}());
             $relQuery .= $this->buildInsertQuery($rel);
         }
     }
     return $relQuery;
 }