7650
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7649
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7648
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7647
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7646
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7645
|
|
bug #14648 [Console] Fix first choice was invalid when using value (ogizanagi)
This PR was merged into the 2.7 branch.
Discussion ----------
[Console] Fix first choice was invalid when using value
| Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | -
This PR solves the following issues encountered using question helper and choices questions: - First choice was not selectable by value. - ChoiceList with associative choices with mixed string and int keys has same issue with first choice. - Fix inconsistency by always returning values as strings.
First point exemple: 
Last two points are mainly edge cases. Indeed, if a QuestionChoice has something like : ```php array( '0' => 'No environment', '1' => 'My environment 1', 'env_2' => 'My environment 2', 3 => 'My environment 3', ); ``` as choices, you will not be able to select the first choice and get an `InvalidArgumentException`:
``` There were 2 errors:
1) Symfony\Component\Console\Tests\Helper\QuestionHelperTest::testChoiceFromChoicelistWithMixedKeys with data set #0 ('0', '0') InvalidArgumentException: Value "0" is invalid
2) Symfony\Component\Console\Tests\Helper\QuestionHelperTest::testChoiceFromChoicelistWithMixedKeys with data set #1 ('No environment', '0') InvalidArgumentException: Value "No environment" is invalid ```
Moreover, even if you were able to select by value (`No environment`), you'll get an integer instead of a string: ``` Failed asserting that '0' is identical to 0. ``` For more consistency, the solution is to always return a string.
The issue does not exist in 2.6, as the `QuestionChoice::getDefaultValidator` handled things differently.
Commits -------
03e4ab6 [Console] Fix first choice was invalid when using value
|
Fabien Potencier |
9 years ago
|
 |
|
7644
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7643
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7642
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7641
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7640
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7639
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7638
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7637
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7636
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7635
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7634
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7633
|
|
|
Fabien Potencier |
9 years ago
|
 |
|
7632
|
|
|
Nicolas Grekas |
9 years ago
|
 |
|
7631
|
|
|
Nicolas Grekas |
9 years ago
|
 |
|