Permalink
Browse files

Merge branch '2.0'

Conflicts:
	Tests/DataFixtures/Dumper/YamlDataDumperTest.php
	Tests/DataFixtures/Loader/YamlDataLoaderTest.php
  • Loading branch information...
2 parents ab44842 + e0d2b9f commit b890706c4e517d726f7b4cbdd4cd402e9ef177f2 @willdurand willdurand committed Apr 6, 2012
@@ -108,7 +108,7 @@ protected function callPhing($taskName, $properties = array())
// build.properties
$this->createBuildPropertiesFile($kernel, $this->cacheDir.'/build.properties');
- // buidtime-conf.xml
+ // buildtime-conf.xml
$this->createBuildTimeFile($this->cacheDir.'/buildtime-conf.xml');
// Verbosity
@@ -150,6 +150,11 @@ protected function getDataAsArray()
}
}
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
$values[$col] = $row[$col];
}
@@ -150,10 +150,19 @@ protected function loadDataFromArray($data = null)
}
foreach ($data as $name => $value) {
- if (is_array($value) && 's' == substr($name, -1)) {
- // many to many relationship
- $this->loadManyToMany($obj, substr($name, 0, -1), $value);
- continue;
+ try {
+ if (is_array($value) && 's' === substr($name, -1)) {
+ // many to many relationship
+ $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;
@@ -180,7 +189,7 @@ protected function loadDataFromArray($data = null)
$relatedTable = $this->dbMap->getTable($column->getRelatedTableName());
if (!isset($this->object_references[$relatedTable->getClassname().'_'.$value])) {
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

0 comments on commit b890706

Please sign in to comment.