Laravel 5.8升级至6.0时nesbot/carbon依赖冲突求助
Laravel 5.8升级到6.0时nesbot/carbon依赖冲突解决方案
问题根源
核心冲突来自spatie/laravel-permission ^2.36:
- 该版本仅支持Laravel 5.4~5.8,依赖的
illuminate/database等组件要求nesbot/carbon ^1.x - Laravel 6.0强制要求
nesbot/carbon ^2.0,且Laravel框架本身已包含illuminate/database,无法与旧版本组件共存 - 这就导致了"要求Carbon 2.x但旧permission需要Carbon 1.x"的循环冲突
解决方案
1. 升级spatie/laravel-permission到兼容Laravel 6的版本
将require-dev中的spatie/laravel-permission ^2.36修改为^3.0(v3.x开始支持Laravel 6+):
"spatie/laravel-permission": "^3.0"
2. 调整其他不兼容的依赖版本
laravelcollective/html ^5.4.0改为^6.0(v6.x适配Laravel 6)cviebrock/eloquent-sluggable ^4.8改为^5.0(v5.x适配Laravel 6)- 移除
nesbot/carbon的显式依赖:Laravel 6已内置对应Carbon版本要求,无需手动指定,避免冲突 - 升级PHP版本要求:Laravel 6最低要求PHP 7.2.5,将原配置的
php ^7.1.3改为^7.2.5
3. 执行更新命令
先清除Composer缓存,再执行更新:
composer clear-cache composer update
调整后的composer.json关键片段示例
"require": { "php": "^7.2.5", "barryvdh/laravel-elfinder": "^0.4.2", "bensampo/laravel-enum": "^1.26", "crazybooot/base64-validation": "^1.0", "cviebrock/eloquent-sluggable": "^5.0", "doctrine/dbal": "^2.9", "dymantic/laravel-instagram-feed": "^2.4", "eluceo/ical": "^0.16.0", "fideloper/proxy": "^4.0", "intervention/image": "^2.5", "ixudra/curl": "^6.16", "laravel/framework": "^6.0", "laravel/socialite": "^4.4", "laravel/tinker": "^1.0", "maatwebsite/excel": "^3.1", "needim/noty": "^3.1", "owen-it/laravel-auditing": "^9.2", "pagarme/pagarme-php": "^4.0", "paypal/paypal-checkout-sdk": "^1.0", "ramsey/uuid": "^3.8", "spatie/laravel-model-status": "^1.9", "tightenco/ziggy": "^0.7.1" }, "require-dev": { "beyondcode/laravel-dump-server": "^1.0", "filp/whoops": "^2.0", "fzaninotto/faker": "^1.4", "laravel/telescope": "^2.0", "laravelcollective/html": "^6.0", "mockery/mockery": "^1.0", "nunomaduro/collision": "^2.0", "phpunit/phpunit": "^8.2", "predis/predis": "^1.1", "sentry/sentry-laravel": "1.0.1", "spatie/laravel-permission": "^3.0", "unisharp/laravel-ckeditor": "^4.7", "uxweb/sweet-alert": "^2.0", "yajra/laravel-datatables-oracle": "~9.0" }
内容的提问来源于stack exchange,提问作者Diego Pedro
相关产品推荐
相关产品推荐

