PHP7.4下Cocur Slugify语法错误:unexpected '|' 问题解决指引
问题原因
报错的array|string|null是PHP 8.0及以上才支持的联合类型声明语法,你的服务器PHP版本为7.4.33,不兼容该语法。问题源于cviebrock/eloquent-sluggable ^8.0依赖的cocur/slugify版本过高(5.x及以上版本启用了PHP 8语法),导致在PHP7.4环境下触发语法错误。
修复方案
方案1:降级cocur/slugify到兼容PHP7.4的版本
cocur/slugify 4.x版本支持PHP7.3+,且与cviebrock/eloquent-sluggable ^8.0完全兼容,操作步骤如下:
- 打开项目根目录的
composer.json文件,添加或修改cocur/slugify的版本约束:
"require": { // 保留其他已有依赖 "cocur/slugify": "^4.0" }
- 执行Composer命令更新依赖:
composer update cocur/slugify
更新完成后,cocur/slugify会切换至4.x版本,其代码将使用PHP7.4兼容的类型声明方式,直接解决语法错误。
方案2:升级服务器PHP版本到8.0及以上
若服务器允许变更配置,将PHP版本升级到8.0或更高,即可原生支持联合类型语法。但此方案涉及服务器环境变更,需先评估业务代码的兼容性后再操作。
内容的提问来源于stack exchange,提问作者Milan Parmar
相关产品推荐
相关产品推荐

