Explorar o código

Merge remote branch 'vicb/form-field'

* vicb/form-field:
  [Form] Tweak the field type
Fabien Potencier %!s(int64=14) %!d(string=hai) anos
pai
achega
2d2de7e8b0
Modificáronse 1 ficheiros con 15 adicións e 13 borrados
  1. 15 13
      src/Symfony/Component/Form/Extension/Core/Type/FieldType.php

+ 15 - 13
src/Symfony/Component/Form/Extension/Core/Type/FieldType.php

@@ -57,21 +57,28 @@ class FieldType extends AbstractType
 
     public function buildView(FormView $view, FormInterface $form)
     {
+        $name = $form->getName();
+
         if ($view->hasParent()) {
             $parentId = $view->getParent()->get('id');
-            $parentName = $view->getParent()->get('full_name');
-            $id = sprintf('%s_%s', $parentId, $form->getName());
-            $name = sprintf('%s[%s]', $parentName, $form->getName());
+            $parentFullName = $view->getParent()->get('full_name');
+            $id = sprintf('%s_%s', $parentId, $name);
+            $fullName = sprintf('%s[%s]', $parentFullName, $name);
         } else {
-            $id = $form->getName();
-            $name = $form->getName();
+            $id = $name;
+            $fullName = $name;
+        }
+
+        $types = array();
+        foreach (array_reverse((array) $form->getTypes()) as $type) {
+            $types[] = $type->getName();
         }
 
         $view
             ->set('form', $view)
             ->set('id', $id)
-            ->set('name', $form->getName())
-            ->set('full_name', $name)
+            ->set('name', $name)
+            ->set('full_name', $fullName)
             ->set('errors', $form->getErrors())
             ->set('value', $form->getClientData())
             ->set('read_only', $form->isReadOnly())
@@ -82,13 +89,8 @@ class FieldType extends AbstractType
             ->set('label', $form->getAttribute('label'))
             ->set('multipart', false)
             ->set('attr', array())
+            ->set('types', $types)
         ;
-
-        $types = array();
-        foreach (array_reverse((array) $form->getTypes()) as $type) {
-            $types[] = $type->getName();
-        }
-        $view->set('types', $types);
     }
 
     public function getDefaultOptions(array $options)