Laravel 10安装spatie/laravel-medialibrary^10.0.0依赖冲突求助
Laravel 10安装spatie/laravel-medialibrary:^10.0.0依赖冲突问题
我在Laravel 10环境下尝试安装spatie/laravel-medialibrary:^10.0.0时遇到依赖冲突,操作步骤如下:
- 删除
composer.lock文件 - 执行
composer update - 执行
composer require "spatie/laravel-medialibrary:^10.0.0"
收到的错误信息:
Problem 1 - Root composer.json requires spatie/laravel-medialibrary 10.0.0 -> satisfiable by spatie/laravel-medialibrary[10.0.0]. - spatie/laravel-medialibrary 10.0.0 requires illuminate/bus ^9.0 -> found illuminate/bus[v9.0.0, ..., v9.52.16] but these were not loaded, likely because it conflicts with another require.
我的composer.json配置:
{ "name": "laravel/laravel", "type": "project", "description": "The skeleton application for the Laravel framework.", "keywords": ["laravel", "framework"], "license": "MIT", "require": { "php": "^8.1", "astrotomic/laravel-translatable": "^11.13", "guzzlehttp/guzzle": "^7.2", "laravel/framework": "^10.10", "laravel/sanctum": "^3.3", "laravel/tinker": "^2.8", "mcamara/laravel-localization": "^2.0" }, "require-dev": { "fakerphp/faker": "^1.9.1", "laravel/breeze": "^1.29", "laravel/pint": "^1.0", "laravel/sail": "^1.18", "mockery/mockery": "^1.4.4", "nunomaduro/collision": "^7.0", "phpunit/phpunit": "^10.1", "spatie/laravel-ignition": "^2.0" }, "autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], "post-update-cmd": [ "@php artisan vendor:publish --tag=laravel-assets --ansi --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate --ansi" ] }, "extra": { "laravel": { "dont-discover": [] } }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, "php-http/discovery": true } }, "minimum-stability": "stable", "prefer-stable": true }
解决办法
冲突原因很直接:spatie/laravel-medialibrary:10.0.0只兼容Laravel 9(依赖illuminate/bus ^9.0),而你的项目用的是Laravel 10,版本不匹配。
方案1:安装适配Laravel 10的版本
spatie/laravel-medialibrary的v11.x版本专门支持Laravel 10,执行以下命令即可:
composer require spatie/laravel-medialibrary:^11.0
方案2:降级Laravel版本(不推荐)
如果必须使用medialibrary v10.x,只能把项目的Laravel版本降级到9.x,但Laravel 9已停止维护,存在安全风险,不建议这么做。
内容的提问来源于stack exchange,提问作者Ahmed Salah
相关产品推荐
相关产品推荐

