From a5ddda4de4a52f6760363bb86060dc1905bebae8 Mon Sep 17 00:00:00 2001 From: "pierreyves.lebecq" Date: Tue, 27 Sep 2011 15:42:22 +0200 Subject: [PATCH] Removed MergeCollectionListener because merging is done in the model --- .../EventListener/MergeCollectionListener.php | 50 ------------------- Form/Type/ModelType.php | 3 +- 2 files changed, 1 insertion(+), 52 deletions(-) delete mode 100644 Form/EventListener/MergeCollectionListener.php diff --git a/Form/EventListener/MergeCollectionListener.php b/Form/EventListener/MergeCollectionListener.php deleted file mode 100644 index be675e8..0000000 --- a/Form/EventListener/MergeCollectionListener.php +++ /dev/null @@ -1,50 +0,0 @@ - 'onBindNormData'); - } - - public function onBindNormData(FilterDataEvent $event) - { - $collection = $event->getForm()->getData(); - $data = $event->getData(); - - if (!$collection) { - $collection = $data; - } else if (count($data) === 0) { - $collection->clear(); - } else { - // merge $data into $collection - foreach ($collection as $i => $model) { - if (false === $key = $data->search($model)) { - $collection->remove($i); - } else { - $data->remove($key); - } - } - - foreach ($data as $model) { - $collection->append($model); - } - } - - $event->setData($collection); - } -} diff --git a/Form/Type/ModelType.php b/Form/Type/ModelType.php index 6ec4c0c..08f67c9 100644 --- a/Form/Type/ModelType.php +++ b/Form/Type/ModelType.php @@ -23,8 +23,7 @@ class ModelType extends AbstractType public function buildForm(FormBuilder $builder, array $options) { if ($options['multiple']) { - $builder->addEventSubscriber(new MergeCollectionListener()) - ->prependClientTransformer(new ModelsToArrayTransformer($options['choice_list'])); + $builder->prependClientTransformer(new ModelsToArrayTransformer($options['choice_list'])); } else { $builder->prependClientTransformer(new ModelToIdTransformer($options['choice_list'])); }