From 41cd9291a69bd24f2184e504be041348a87308a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anderson=20Fria=C3=A7a?= Date: Mon, 12 Feb 2018 11:19:42 -0300 Subject: [PATCH] [5.6] Validation in select field for boolean value of selected option (#491) --- src/FormBuilder.php | 6 ++++-- tests/FormBuilderTest.php | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/FormBuilder.php b/src/FormBuilder.php index 3cfc6458..c701de9c 100644 --- a/src/FormBuilder.php +++ b/src/FormBuilder.php @@ -572,7 +572,7 @@ protected function setQuickTextAreaSize($options) * * @param string $name * @param array $list - * @param string $selected + * @param string|bool $selected * @param array $selectAttributes * @param array $optionsAttributes * @param array $optgroupsAttributes @@ -787,7 +787,9 @@ protected function getSelectedValue($value, $selected) } elseif ($selected instanceof Collection) { return $selected->contains($value) ? 'selected' : null; } - + if (is_int($value) && is_bool($selected)) { + return (bool)$value === $selected; + } return ((string) $value === (string) $selected) ? 'selected' : null; } diff --git a/tests/FormBuilderTest.php b/tests/FormBuilderTest.php index 47ff1b92..dc98c81e 100644 --- a/tests/FormBuilderTest.php +++ b/tests/FormBuilderTest.php @@ -464,6 +464,12 @@ public function testSelect() '', $result ); + + $select = $this->formBuilder->select('avc', [1 => 'Yes', 0 => 'No'], true, ['placeholder' => 'Select']); + $this->assertEquals( + '', + $select + ); } public function testSelectCollection()