[Form] Choice type int values (BC Fix)

This commit is contained in:
Fred Cox 2017-03-09 22:37:49 +02:00 committed by Fabien Potencier
parent a0945fc182
commit ed211e9c74
2 changed files with 16 additions and 3 deletions

View File

@ -171,8 +171,8 @@ class ChoiceType extends AbstractType
}
foreach ($data as $v) {
if (null !== $v && !is_string($v)) {
throw new TransformationFailedException('All choices submitted must be NULL or strings.');
if (null !== $v && !is_string($v) && !is_int($v)) {
throw new TransformationFailedException('All choices submitted must be NULL, strings or ints.');
}
}
}, 256);

View File

@ -1689,6 +1689,19 @@ class ChoiceTypeTest extends BaseTypeTest
$this->assertNull($form[4]->getViewData());
}
public function testSubmitMultipleChoicesInts()
{
$form = $this->factory->create(static::TESTED_TYPE, null, array(
'multiple' => true,
'choices' => array_flip($this->numericChoicesFlipped),
'choices_as_values' => true,
));
$form->submit(array(1, 2));
$this->assertTrue($form->isSynchronized());
}
public function testSingleSelectedObjectChoices()
{
$view = $this->factory->create(static::TESTED_TYPE, $this->objectChoices[3], array(
@ -2306,7 +2319,7 @@ class ChoiceTypeTest extends BaseTypeTest
$form->submit($submissionData);
$this->assertFalse($form->isSynchronized());
$this->assertEquals('All choices submitted must be NULL or strings.', $form->getTransformationFailure()->getMessage());
$this->assertEquals('All choices submitted must be NULL, strings or ints.', $form->getTransformationFailure()->getMessage());
}
public function invalidNestedValueTestMatrix()