diff --git a/src/Symfony/Bundle/DoctrineBundle/Form/ValueTransformer/CollectionToChoiceTransformer.php b/src/Symfony/Bundle/DoctrineBundle/Form/ValueTransformer/CollectionToChoiceTransformer.php index e9dfa6c564..b019fb13a8 100644 --- a/src/Symfony/Bundle/DoctrineBundle/Form/ValueTransformer/CollectionToChoiceTransformer.php +++ b/src/Symfony/Bundle/DoctrineBundle/Form/ValueTransformer/CollectionToChoiceTransformer.php @@ -71,6 +71,10 @@ class CollectionToChoiceTransformer extends BaseValueTransformer */ public function transform($value) { + if (null === $value) { + return array(); + } + $metadata = $this->getOption('em')->getClassMetadata($this->getOption('className')); $reflField = $metadata->getReflectionProperty($metadata->identifier[0]); @@ -78,6 +82,7 @@ class CollectionToChoiceTransformer extends BaseValueTransformer foreach ($value AS $object) { $ids[] = $reflField->getValue($object); } + return $ids; } } \ No newline at end of file diff --git a/src/Symfony/Bundle/DoctrineBundle/Tests/Form/ValueTransformer/CollectionToChoiceTransformerTest.php b/src/Symfony/Bundle/DoctrineBundle/Tests/Form/ValueTransformer/CollectionToChoiceTransformerTest.php index e5370d3055..ed838bce56 100644 --- a/src/Symfony/Bundle/DoctrineBundle/Tests/Form/ValueTransformer/CollectionToChoiceTransformerTest.php +++ b/src/Symfony/Bundle/DoctrineBundle/Tests/Form/ValueTransformer/CollectionToChoiceTransformerTest.php @@ -68,6 +68,13 @@ class CollectionToChoiceTransformerTest extends \Symfony\Bundle\DoctrineBundle\T $this->assertEquals(array(), $ids); } + public function testTransformNull() + { + $transformer = $this->createTransformer(); + + $this->assertEquals(array(), $transformer->transform(null)); + } + public function createTagCollection() { $tags = new ArrayCollection();