protected function loadMany2Many($obj, $middleTableName, $values)
{
$middleTable = $this->dbMap->getTable($middleTableName);
$middleClass = $middleTable->getPhpName();
foreach ($middleTable->getColumns() as $column) {
if ($column->isForeignKey() && constant(constant(get_class($obj) . '::PEER') . '::TABLE_NAME') != $column->getRelatedTableName()) {
$relatedClass = $this->dbMap->getTable($column->getRelatedTableName())->getPhpName();
break;
}
}
if (!isset($relatedClass)) {
throw new InvalidArgumentException(sprintf('Unable to find the many-to-many relationship for object "%s".', get_class($obj)));
}
$setter = 'set' . get_class($obj);
$relatedSetter = 'set' . $relatedClass;
foreach ($values as $value) {
if (!isset($this->object_references[$relatedClass . '_' . $value])) {
throw new InvalidArgumentException(sprintf('The object "%s" from class "%s" is not defined in your data file.', $value, $relatedClass));
}
$middle = new $middleClass();
$middle->{$setter}($obj);
$middle->{$relatedSetter}($this->object_references[$relatedClass . '_' . $value]);
$middle->save();
}
}