8000 bug #18924 [DoctrineBridge] Don't use object IDs in DoctrineChoiceLoa… · symfony/symfony@80057b0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 80057b0

Browse files
committed
bug #18924 [DoctrineBridge] Don't use object IDs in DoctrineChoiceLoader when passing a value closure (webmozart)
This PR was merged into the 2.7 branch. Discussion ---------- [DoctrineBridge] Don't use object IDs in DoctrineChoiceLoader when passing a value closure | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - This PR is porting an optimization done for `loadChoicesForValues()` in 64c80a6 to `loadValuesForChoices()`. Commits ------- f6e5298 [DoctrineBridge] Don't use object IDs in DoctrineChoiceLoader when passing a value closure
2 parents eaca0bb + f6e5298 commit 80057b0

File tree

3 files changed

+466
-2
lines changed

3 files changed

+466
-2
lines changed

src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,10 @@ public function loadValuesForChoices(array $choices, $value = null)
110110

111111
// Optimize performance for single-field identifiers. We already
112112
// know that the IDs are used as values
113+
$optimize = null === $value || is_array($value) && $value[0] === $this->idReader;
113114

114115
// Attention: This optimization does not check choices for existence
115-
if (!$this->choiceList && $this->idReader->isSingleId()) {
116+
if ($optimize && !$this->choiceList && $this->idReader->isSingleId()) {
116117
$values = array();
117118

118119
// Maintain order and indices of the given objects

0 commit comments

Comments
 (0)
0