protected function addCrossFKAttributes(&$script, ForeignKey $crossFK) { $joinedTableObjectBuilder = $this->getNewObjectBuilder($crossFK->getForeignTable()); $className = $joinedTableObjectBuilder->getObjectClassname(); $relatedName = $this->getFKPhpNameAffix($crossFK, $plural = true); $script .= "\n /**\n * @var PropelObjectCollection|{$className}[] Collection to store aggregation of {$className} objects.\n */\n protected \$" . $this->getCrossFKVarName($crossFK) . ";\n"; }
protected function addCrossFKAttributes(&$script, ForeignKey $crossFK) { $joinedTableObjectBuilder = $this->getNewObjectBuilder($crossFK->getForeignTable()); $className = $joinedTableObjectBuilder->getObjectClassname(); $script .= "\n\t/**\n\t * @var array {$className}[] Collection to store aggregation of {$className} objects.\n\t */\n\tprotected \$" . $this->getCrossFKVarName($crossFK) . ";\n"; }
protected static function getRefRelatedBySuffix(ForeignKey $fk) { $relCol = ''; foreach ($fk->getLocalForeignMapping() as $localColumnName => $foreignColumnName) { $localTable = $fk->getTable(); $localColumn = $localTable->getColumn($localColumnName); if (!$localColumn) { throw new Exception("Could not fetch column: {$columnName} in table " . $localTable->getName()); } $foreignKeysToForeignTable = $localTable->getForeignKeysReferencingTable($fk->getForeignTableName()); if ($fk->getForeignTableName() == $fk->getTableName()) { // self referential foreign key $relCol .= $fk->getForeignTable()->getColumn($foreignColumnName)->getPhpName(); if (count($foreignKeysToForeignTable) > 1) { // several self-referential foreign keys $relCol .= array_search($fk, $foreignKeysToForeignTable); } } elseif (count($foreignKeysToForeignTable) > 1 || count($fk->getForeignTable()->getForeignKeysReferencingTable($fk->getTableName())) > 0) { // several foreign keys to the same table, or symmetrical foreign key in foreign table $relCol .= $localColumn->getPhpName(); } } if ($relCol != '') { $relCol = 'RelatedBy' . $relCol; } return $relCol; }