From 8565baab2b37e751c50764fc978f8f7114f15ab2 Mon Sep 17 00:00:00 2001 From: Adnan Dautovic Date: Wed, 30 Mar 2022 09:37:05 +0200 Subject: [PATCH] Fix #19324 by allowing for direct comparison --- framework/CHANGELOG.md | 1 + framework/helpers/BaseHtml.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 656d5d9ec59..2f05f76d521 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -11,6 +11,7 @@ Yii Framework 2 Change Log - Enh #19304: Add filtering validator `yii\validators\TrimValidator` (WinterSilence) - Enh #19309: Optimize `yii\base\Model::attributes()` (WinterSilence) - Bug #19322: Revert force setting value to empty string in case it's `null` in `yii\validators\FilterValidator::validateAttribute()` (bizley) +- Bug #19324: Fix yii\helpers\BaseHtml::renderSelectOptions() giving wrong selection for boolean attributes (adnandautovic) - Bug #19329: Fix `yii\web\GroupUrlRule` to properly normalize prefix (bizley) diff --git a/framework/helpers/BaseHtml.php b/framework/helpers/BaseHtml.php index 0a9d9055fa7..6230bf7c22e 100644 --- a/framework/helpers/BaseHtml.php +++ b/framework/helpers/BaseHtml.php @@ -1914,7 +1914,7 @@ public static function renderSelectOptions($selection, $items, &$tagOptions = [] $attrs['value'] = (string) $key; if (!array_key_exists('selected', $attrs)) { $attrs['selected'] = $selection !== null && - (!ArrayHelper::isTraversable($selection) && !strcmp($key, $selection) + (!ArrayHelper::isTraversable($selection) && ($strict ? $selection == $key : !strcmp($key, $selection)) || ArrayHelper::isTraversable($selection) && ArrayHelper::isIn((string)$key, $selection, $strict)); } $text = $encode ? static::encode($value) : $value;