执行composer update后Lumen出现TypeError错误求助
问题描述
执行composer update后,Lumen 9项目调用POST路由时触发类型错误,错误信息如下:
"message": "Symfony\\Component\\HttpFoundation\\Request::getPayload(): Return value must be of type Symfony\\Component\\HttpFoundation\\InputBag, Symfony\\Component\\HttpFoundation\\ParameterBag returned", "exception": "TypeError", "file": "C:\\xampp\\htdocs\\octilus\\talc_claim\\talc064-api-be\\prod-web\\talc064-api-be\\vendor\\symfony\\http-foundation\\Request.php", "line": 1517, "trace": [ { "file": "C:\\xampp\\htdocs\\octilus\\talc_claim\\talc064-api-be\\prod-web\\talc064-api-be\\vendor\\symfony\\psr-http-message-bridge\\Factory\\PsrHttpFactory.php", "line": 84, "function": "getPayload", "class": "Symfony\\Component\\HttpFoundation\\Request", "type": "->" } ]
项目依赖配置(composer.json):
"require": { "php": "^8.0", "aws/aws-sdk-php": "^3.269", "barryvdh/laravel-dompdf": "^2.0", "illuminate/redis": "^9.52", "irazasyed/larasupport": "^1.1", "laravel/lumen-framework": "^9.0", "league/flysystem-aws-s3-v3": "^3.15", "monolog/monolog": "^2.9", "predis/predis": "^2.1", "sendgrid/sendgrid": "^8.0", "sentry/sentry-laravel": "^3.4", "setasign/fpdf": "^1.8", "setasign/fpdi": "^2.3", "shiftonelabs/laravel-sqs-fifo-queue": "^3.0", "webpatser/laravel-uuid": "^4.0" }, "require-dev": { "fakerphp/faker": "^1.9.1", "mockery/mockery": "^1.4.4", "phpunit/phpunit": "^9.5.10" }
触发错误的路由配置(web.php):
$router->post('get-uuid', 'V1\UserAgentController@getUUID');
解决方案
该错误源于symfony/http-foundation与symfony/psr-http-message-bridge版本不兼容:Symfony 6.4+ 版本中Request::getPayload()的返回类型改为InputBag,但旧版psr-http-message-bridge仍期望返回ParameterBag,可通过以下两种方式修复:
方式一:降级symfony/http-foundation到兼容版本
- 在
composer.json的require字段中添加版本约束:"symfony/http-foundation": "~6.3.0" - 执行更新命令:
composer update symfony/http-foundation --with-all-dependencies
方式二:升级symfony/psr-http-message-bridge到兼容版本
- 在
composer.json的require字段中添加版本约束:"symfony/psr-http-message-bridge": "^2.3" - 执行更新命令:
composer update symfony/psr-http-message-bridge --with-all-dependencies
验证
完成操作后重新调用POST路由,确认错误是否消除。
内容的提问来源于stack exchange,提问作者Maya
相关产品推荐
相关产品推荐

