升级PHP后本地运行Laravel项目报trim传null废弃错误该如何解决
问题原因说明
这个错误是PHP 8.1+版本的弃用规则和旧版Laravel不兼容导致的:PHP 8.1开始禁止向要求字符串类型参数的函数传入null,你当前使用的Laravel版本在路由分组前缀拼接的逻辑中,没有对空前缀的null值做兼容处理,就会触发该报错。
可选解决方案
你可以根据自己的需求选其中一种操作,优先推荐方案一,操作成本最低,适合无相关经验的开发者。
方案一:降级PHP到和当前Laravel版本兼容的版本
不需要修改项目代码,改动风险极低。
- 第一步:查看项目根目录下的
composer.json文件,找到require块下的php字段,确认项目支持的PHP版本范围,比如字段值为^7.3|^8.0说明最高支持PHP 8.0,不要装更高版本。 - 第二步:用Homebrew安装对应版本的PHP,比如要安装PHP 8.0执行命令:
brew install php@8.0 - 第三步:执行命令切换全局PHP版本:
brew unlink php && brew link php@8.0 --force --overwrite - 第四步:执行
php -v确认版本切换成功,重启本地开发服务即可正常运行。
方案二:升级Laravel到适配当前PHP版本的版本
适合需要使用PHP新特性、愿意做项目兼容调整的场景。
- 第一步:先确认你当前PHP版本对应的最低Laravel要求:PHP 8.1需要Laravel 9及以上版本,PHP 8.2需要Laravel 10及以上版本。
- 第二步:完整备份项目代码和本地数据库,避免升级失败无法回滚。
- 第三步:修改项目根目录
composer.json文件中laravel/framework的版本号到对应要求的版本,同时调整其他依赖包的版本到适配新Laravel的范围。 - 第四步:执行
composer update更新依赖包,完成后按照Laravel官方升级指南修改项目中不兼容新版本的代码逻辑。 - 第五步:重启本地开发服务,验证所有功能正常即可。
内容的提问来源于stack exchange,提问作者Bervetuna
相关产品推荐
相关产品推荐

