Merge branch '2.0'

Conflicts:
	Tests/DataFixtures/Dumper/YamlDataDumperTest.php
	Tests/DataFixtures/Loader/YamlDataLoaderTest.php
This commit is contained in:
William DURAND 2012-04-06 12:57:52 +02:00
commit b890706c4e
3 changed files with 20 additions and 6 deletions

View file

@ -108,7 +108,7 @@ abstract class AbstractPropelCommand extends ContainerAwareCommand
// build.properties // build.properties
$this->createBuildPropertiesFile($kernel, $this->cacheDir.'/build.properties'); $this->createBuildPropertiesFile($kernel, $this->cacheDir.'/build.properties');
// buidtime-conf.xml // buildtime-conf.xml
$this->createBuildTimeFile($this->cacheDir.'/buildtime-conf.xml'); $this->createBuildTimeFile($this->cacheDir.'/buildtime-conf.xml');
// Verbosity // Verbosity

View file

@ -150,6 +150,11 @@ abstract class AbstractDataDumper extends AbstractDataHandler implements DataDum
} }
} }
elseif (!$isPrimaryKey || ($isPrimaryKey && !$tableMap->isUseIdGenerator())) { elseif (!$isPrimaryKey || ($isPrimaryKey && !$tableMap->isUseIdGenerator())) {
if (!empty($row[$col]) && 'ARRAY' === $column->getType()) {
$serialized = substr($row[$col], 2, -2);
$row[$col] = $serialized ? explode(' | ', $serialized) : array();
}
// We did not want auto incremented primary keys // We did not want auto incremented primary keys
$values[$col] = $row[$col]; $values[$col] = $row[$col];
} }

View file

@ -150,10 +150,19 @@ abstract class AbstractDataLoader extends AbstractDataHandler implements DataLoa
} }
foreach ($data as $name => $value) { foreach ($data as $name => $value) {
if (is_array($value) && 's' == substr($name, -1)) { try {
// many to many relationship if (is_array($value) && 's' === substr($name, -1)) {
$this->loadManyToMany($obj, substr($name, 0, -1), $value); // many to many relationship
continue; $this->loadManyToMany($obj, substr($name, 0, -1), $value);
continue;
}
} catch (\PropelException $e) {
// Check whether this is actually an array stored in the object.
if ('Cannot fetch TableMap for undefined table: '.substr($name, 0, -1) === $e->getMessage()) {
if ('ARRAY' !== $tableMap->getColumn($name)->getType()) {
throw $e;
}
}
} }
$isARealColumn = true; $isARealColumn = true;
@ -180,7 +189,7 @@ abstract class AbstractDataLoader extends AbstractDataHandler implements DataLoa
$relatedTable = $this->dbMap->getTable($column->getRelatedTableName()); $relatedTable = $this->dbMap->getTable($column->getRelatedTableName());
if (!isset($this->object_references[$relatedTable->getClassname().'_'.$value])) { if (!isset($this->object_references[$relatedTable->getClassname().'_'.$value])) {
throw new \InvalidArgumentException( throw new \InvalidArgumentException(
sprintf('The object "%s" from class "%s" is not defined in your data file.', $value, $relatedTable->getPhpName()) sprintf('The object "%s" from class "%s" is not defined in your data file.', $value, $relatedTable->getClassname())
); );
} }
$value = $this $value = $this