public function testTableMap() { $join = new ModelJoin(); $this->assertNull($join->getTableMap(), 'getTableMap() returns null as long as no table map is set'); $tmap = new TableMap(); $tmap->foo = 'bar'; $join->setTableMap($tmap); $this->assertEquals($tmap, $join->getTableMap(), 'getTableMap() returns the TableMap previously set by setTableMap()'); }
/** * 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(); } }