Bläddra i källkod

Change to 'no' BooleanType

Luciano Andrade 13 år sedan
förälder
incheckning
5fa799f45c
2 ändrade filer med 29 tillägg och 1 borttagningar
  1. 17 0
      Form/DataTransformer/BooleanTransformer.php
  2. 12 1
      Form/Type/BooleanType.php

+ 17 - 0
Form/DataTransformer/BooleanTransformer.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace Sonata\AdminBundle\Form\DataTransformer;
+
+use Symfony\Component\Form\DataTransformerInterface;
+use Sonata\AdminBundle\Form\Type\BooleanType;
+
+class BooleanTransformer implements DataTransformerInterface{
+    public function transform($boolFromPHP)
+    {
+        return ($boolFromPHP)?BooleanType::TYPE_YES:BooleanType::TYPE_NO;
+    }
+
+    public function reverseTransform($boolFromSonata){
+        return $boolFromSonata == BooleanType::TYPE_YES;
+    }
+}

+ 12 - 1
Form/Type/BooleanType.php

@@ -12,7 +12,9 @@
 namespace Sonata\AdminBundle\Form\Type;
 
 use Symfony\Component\Form\Extension\Core\Type\ChoiceType as FormChoiceType;
+use Symfony\Component\Form\FormBuilder;
 use Symfony\Component\Translation\TranslatorInterface;
+use Sonata\AdminBundle\Form\DataTransformer\BooleanTransformer;
 
 class BooleanType extends FormChoiceType
 {
@@ -30,6 +32,15 @@ class BooleanType extends FormChoiceType
         $this->translator = $translator;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    function buildForm(FormBuilder $builder, array $options)
+    {
+        parent::buildForm($builder, $options);
+        $builder->appendClientTransformer(new BooleanTransformer);
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -44,4 +55,4 @@ class BooleanType extends FormChoiceType
 
         return $options;
     }
-}
+}