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

Laravel 8.64搭配PHP 8.1发送邮件报strtolower空参数废弃错误求助

报错原因

该报错由PHP 8.1的类型校验规则收紧触发:旧版本SwiftMailer中存在未做空值判断就将参数传入strtolower()的逻辑,而SwiftMailer是Laravel 8邮件功能的内置依赖,属于laravel/framework的子依赖包,不需要在项目根目录的composer.json中显式声明,因此你会看到项目中已集成该组件但根composer.json没有对应条目。

解决方案

  • 方案1(最优):显式声明兼容PHP 8.1的SwiftMailer版本
    在项目根目录composer.json的require字段中添加以下配置:

    "swiftmailer/swiftmailer": "^6.3"
    

    保存后执行更新命令即可:

    composer update swiftmailer/swiftmailer
    

    SwiftMailer从6.3.0版本开始已经修复了PHP 8.1下的空参数传值问题,更新后即可正常发送邮件。

  • 方案2:升级Laravel 8到最新维护版本
    Laravel官方在8.x的后续小版本中已经完成了PHP 8.1的兼容适配,执行以下命令即可升级框架:

    composer update laravel/framework
    

    升级前建议先备份composer.lock文件,避免其他业务依赖出现兼容性冲突。

  • 方案3(临时应急,不推荐):屏蔽弃用警告
    若暂时不方便修改依赖,可修改服务器php.ini配置文件,调整error_reporting参数去掉E_DEPRECATED项即可屏蔽该报错。该方案仅隐藏提示未解决根本问题,不建议长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:06:04