/** * 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(); if ($relation->getType() == RelationMap::ONE_TO_MANY) { $this->isAdd = true; $this->relationName = $relation->getName() . 's'; $this->relationMethod = 'add' . $relation->getName(); } else { $this->relationName = $relation->getName(); $this->relationMethod = 'set' . $relation->getName(); } $this->rightPhpName = $join->hasRelationAlias() ? $join->getRelationAlias() : $relation->getName(); if (!$join->isPrimary()) { $this->leftPhpName = $join->hasLeftTableAlias() ? $join->getLeftTableAlias() : $join->getPreviousJoin()->getRelationMap()->getName(); } }