Exemple #1
0
 public function testSetRelationMap()
 {
     $join = new ModelJoin();
     $this->assertNull($join->getRelationMap(), 'getRelationMap() returns null as long as no relation map is set');
     $bookTable = BookPeer::getTableMap();
     $relationMap = $bookTable->getRelation('Author');
     $join->setRelationMap($relationMap);
     $this->assertEquals($relationMap, $join->getRelationMap(), 'getRelationMap() returns the RelationMap previously set by setRelationMap()');
 }
Exemple #2
0
 /**
  * Define the joined hydration schema based on a join object.
  * Fills the ModelWith properties using a ModelJoin as source
  *
  * @param ModelJoin $join
  */
 public function init(ModelJoin $join)
 {
     $tableMap = $join->getTableMap();
     $this->modelName = $tableMap->getClassname();
     $this->modelPeerName = $tableMap->getPeerClassname();
     $this->isSingleTableInheritance = $tableMap->isSingleTableInheritance();
     $relation = $join->getRelationMap();
     $relationName = $relation->getName();
     if ($relation->getType() == RelationMap::ONE_TO_MANY) {
         $this->isAdd = $this->isWithOneToMany = true;
         $this->relationName = $relation->getPluralName();
         $this->relationMethod = 'add' . $relationName;
         $this->initMethod = 'init' . $this->relationName;
     } else {
         $this->relationName = $relationName;
         $this->relationMethod = 'set' . $relationName;
     }
     $this->rightPhpName = $join->hasRelationAlias() ? $join->getRelationAlias() : $relationName;
     if (!$join->isPrimary()) {
         $this->leftPhpName = $join->hasLeftTableAlias() ? $join->getLeftTableAlias() : $join->getPreviousJoin()->getRelationMap()->getName();
     }
 }