Controller
\npublic function updateBalanceSettings(\n #[MapRequestPayload] UpdateBalanceSettingsInput $input\n): Response {\n dump($input);\n exit;\n}DTOs
\nfinal readonly class UpdateBalanceSettingsInput\n{\n public function __construct(\n /** @var BalanceSettingInput[] */\n public array $settings,\n ) {}\n}\n\nclass BalanceSettingInput\n{\n public function __construct(\n public int $id,\n public bool $active,\n ) {}\n}Dump (Symfony 7.2)
\nApp\\UI\\Web\\DTO\\Cabinet\\Balance\\UpdateBalanceSettingsInput {#1961\n +settings: array:1 [\n 0 => App\\UI\\Web\\DTO\\Cabinet\\Balance\\BalanceSettingInput {#1964\n +id: 2\n +active: true\n }\n ]\n}Dump (Symfony 7.3)
\nApp\\UI\\Web\\DTO\\Cabinet\\Balance\\UpdateBalanceSettingsInput {#1613\n +settings: array:1 [\n 0 => array:2 [\n \"id\" => 2\n \"active\" => true\n ]\n ]\n}Expected Behavior
\nThe settings property should still contain an array of BalanceSettingInput objects,
\nbut since Symfony 7.3 it now returns an array of raw arrays instead.
Same problem is here https://www.reddit.com/r/symfony/comments/1nebngt/mapquerybuilder_in_73_parsing_problem/
","upvoteCount":1,"answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Ah this may be the same issue than #60795; could you try setting framework.property_info.with_constructor_extractor to false?
-
|
Hello everyone Problem Summary Input Payload {
"settings": [
{
"id": 2,
"active": false
}
]
}Controller public function updateBalanceSettings(
#[MapRequestPayload] UpdateBalanceSettingsInput $input
): Response {
dump($input);
exit;
}DTOs final readonly class UpdateBalanceSettingsInput
{
public function __construct(
/** @var BalanceSettingInput[] */
public array $settings,
) {}
}
class BalanceSettingInput
{
public function __construct(
public int $id,
public bool $active,
) {}
}Dump (Symfony 7.2) App\UI\Web\DTO\Cabinet\Balance\UpdateBalanceSettingsInput {#1961
+settings: array:1 [
0 => App\UI\Web\DTO\Cabinet\Balance\BalanceSettingInput {#1964
+id: 2
+active: true
}
]
}Dump (Symfony 7.3) App\UI\Web\DTO\Cabinet\Balance\UpdateBalanceSettingsInput {#1613
+settings: array:1 [
0 => array:2 [
"id" => 2
"active" => true
]
]
}Expected Behavior Same problem is here https://www.reddit.com/r/symfony/comments/1nebngt/mapquerybuilder_in_73_parsing_problem/ |
Beta Was this translation helpful? Give feedback.
-
|
Hello, could you share the corresponding request payload? Note that since Symfony 7.1 you can map an array using |
Beta Was this translation helpful? Give feedback.
Ah this may be the same issue than #60795; could you try setting
framework.property_info.with_constructor_extractortofalse?