From 46bae14425fd2ffa1ae640e7cd4bed10fc38b186 Mon Sep 17 00:00:00 2001 From: Ilyas Salikhov Date: Sun, 4 Jun 2017 23:24:55 +0300 Subject: [PATCH] Removed dublicated constraints in Format field. Improved format for field type of form --- Parser/FormTypeParser.php | 6 +++++- Parser/ValidationParser.php | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Parser/FormTypeParser.php b/Parser/FormTypeParser.php index 3ae2170..68847e1 100644 --- a/Parser/FormTypeParser.php +++ b/Parser/FormTypeParser.php @@ -260,7 +260,11 @@ class FormTypeParser implements ParserInterface } if (($choices = $config->getOption('choices')) && is_array($choices) && count($choices)) { - $parameters[$name]['format'] = json_encode($choices); + $choices = $config->getOption('choices_as_values') ? + array_values($choices) : + array_keys($choices); + sort($choices); + $parameters[$name]['format'] = '[' . join('|', $choices) . ']'; } elseif (($choiceList = $config->getOption('choice_list')) && $choiceList instanceof ChoiceListInterface) { $choices = $this->handleChoiceListValues($choiceList); if (is_array($choices) && count($choices)) { diff --git a/Parser/ValidationParser.php b/Parser/ValidationParser.php index 02bf1d0..4c6c135 100644 --- a/Parser/ValidationParser.php +++ b/Parser/ValidationParser.php @@ -132,7 +132,7 @@ class ValidationParser implements ParserInterface, PostParserInterface } if (isset($vparams['format'])) { - $vparams['format'] = join(', ', $vparams['format']); + $vparams['format'] = join(', ', array_unique($vparams['format'])); } foreach (array('dataType', 'readonly', 'required', 'subType') as $reqprop) { @@ -278,6 +278,8 @@ class ValidationParser implements ParserInterface, PostParserInterface break; case 'Choice': $choices = $this->getChoices($constraint, $className); + sort($choices); + $format = '[' . join('|', $choices) . ']'; if ($constraint->multiple) { $vparams['actualType'] = DataTypes::COLLECTION;