You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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到兼容版本

  1. 在composer.json的require字段中添加版本约束:
    "symfony/http-foundation": "~6.3.0"
    
  2. 执行更新命令:
    composer update symfony/http-foundation --with-all-dependencies
    

方式二:升级symfony/psr-http-message-bridge到兼容版本

  1. 在composer.json的require字段中添加版本约束:
    "symfony/psr-http-message-bridge": "^2.3"
    
  2. 执行更新命令:
    composer update symfony/psr-http-message-bridge --with-all-dependencies
    

验证

完成操作后重新调用POST路由,确认错误是否消除。

内容的提问来源于stack exchange,提问作者Maya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:13:18