From bff1b3ba0a55c6f18cd8dddb6681debbb8997d55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Szepczy=C5=84ski?= Date: Fri, 15 Dec 2017 16:58:40 +0100 Subject: [PATCH] Add support for boolean type for CheckboxType (#1123) * Add support for boolean type for CheckboxType * add functional tests to checkbox form type as boolean --- ModelDescriber/FormModelDescriber.php | 5 +++++ Tests/Functional/Form/DummyType.php | 2 ++ Tests/Functional/FunctionalTest.php | 3 +++ 3 files changed, 10 insertions(+) diff --git a/ModelDescriber/FormModelDescriber.php b/ModelDescriber/FormModelDescriber.php index 4694352..cab1ea6 100644 --- a/ModelDescriber/FormModelDescriber.php +++ b/ModelDescriber/FormModelDescriber.php @@ -98,6 +98,11 @@ final class FormModelDescriber implements ModelDescriberInterface, ModelRegistry break; } + + if ('checkbox' === $blockPrefix) { + $property->setType('boolean'); + } + if ('collection' === $blockPrefix) { $subType = $config->getOption('entry_type'); $property->setType('array'); diff --git a/Tests/Functional/Form/DummyType.php b/Tests/Functional/Form/DummyType.php index a590dba..eae8edc 100644 --- a/Tests/Functional/Form/DummyType.php +++ b/Tests/Functional/Form/DummyType.php @@ -13,6 +13,7 @@ namespace Nelmio\ApiDocBundle\Tests\Functional\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; +use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; @@ -22,5 +23,6 @@ class DummyType extends AbstractType { $builder->add('bar', TextType::class, ['required' => false]); $builder->add('foo', ChoiceType::class, ['choices' => ['male', 'female']]); + $builder->add('baz', CheckboxType::class, ['required' => false]); } } diff --git a/Tests/Functional/FunctionalTest.php b/Tests/Functional/FunctionalTest.php index 0bb4a71..3991d3d 100644 --- a/Tests/Functional/FunctionalTest.php +++ b/Tests/Functional/FunctionalTest.php @@ -215,6 +215,9 @@ class FunctionalTest extends WebTestCase 'type' => 'string', 'enum' => ['male', 'female'], ], + 'baz' => [ + 'type' => 'boolean' + ] ], 'required' => ['foo'], ], $this->getModel('DummyType')->toArray());