Fix #20447: Fix behavior for yii\web\Controller::bindActionParams around mixed type

This commit is contained in:
Christina Reichel
2025-08-18 17:06:37 +02:00
committed by GitHub
parent 5468bca7bc
commit 5aabdd3a21
4 changed files with 20 additions and 0 deletions

View File

@ -254,6 +254,17 @@ class ControllerTest extends TestCase
list($foo) = $this->controller->bindActionParams($stringy, ['foo' => '']);
$this->assertSame('', $foo);
// make sure mixed type works
$params = ['foo' => 100];
$mixedParameter = new InlineAction('mixed-parameter', $this->controller, 'actionMixedParameter');
list($foo) = $this->controller->bindActionParams($mixedParameter, $params);
$this->assertSame(100, $foo);
$params = ['foo' => 'foobar'];
$mixedParameter = new InlineAction('mixed-parameter', $this->controller, 'actionMixedParameter');
list($foo) = $this->controller->bindActionParams($mixedParameter, $params);
$this->assertSame('foobar', $foo);
$params = ['foo' => 'oops', 'bar' => null];
$this->expectException('yii\web\BadRequestHttpException');
$this->expectExceptionMessage('Invalid data received for parameter "foo".');