首页 > 解决方案 > 我无法将 Laravel 升级到版本 7,因为 composer 抛出错误

问题描述

我正在尝试将 Laravel 从版本 6 升级到版本 7。我尝试了不同的包组合,但似乎没有任何东西可以解决我的错误。

这是我的 composer.json (不起作用)

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.2",
        "laravel/framework": "^7.0",
        "jgrossi/corcel": "^4.0"
    },
    "require-dev": {
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^3.0",
        "phpunit/phpunit": "^8.0",
        "facade/ignition": "^1.4"
    },
    "autoload": {
        "classmap": [
            "app/Console/Commands",
            "app/Models",
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

当我运行时composer update,我收到此错误:

Problem 1
    - The requested package laravel/framework (locked at v6.18.15, required as ^7.0) is satisfiable by laravel/framework[v6.18.15] but these conflict with your requirements or minimum-stability.
  Problem 2
    - Conclusion: don't install laravel/framework v7.20.0
    - Conclusion: don't install laravel/framework v7.19.1
    - Conclusion: don't install laravel/framework v7.19.0
    - Conclusion: don't install laravel/framework v7.18.0
    - Conclusion: don't install laravel/framework v7.17.2
    - Conclusion: don't install laravel/framework v7.17.1
    - Conclusion: don't install laravel/framework v7.17.0
    - Conclusion: don't install laravel/framework v7.16.1
    - Conclusion: don't install laravel/framework v7.16.0

这种情况持续了很长时间,但似乎只有一些包组合不能一起工作。我不知道如何解决这个问题。

标签: laravelcomposer-php

解决方案


Laravel 升级指南中所述

PHP 7.2.5 需要

laravel/framework将您的依赖项更新到^7.0您的composer.json 文件中。此外,将您的nunomaduro/collision依赖关系更新为 、^4.1依赖phpunit/phpunit关系^8.5laravel/tinker依赖关系 ^2.0和。以下第一方软件包有新的主要版本来支持 Laravel 7。如果有的话,请在升级前通读它们各自的升级指南:facade/ignition^2.0

Browser Kit Testing v6.0
Envoy v2.0
Horizon v4.0
Nova v3.0
Scout v8.0
Telescope v3.0
Tinker v2.0
UI v2.0 (No changes necessary)

最后,检查您的应用程序使用的任何其他第三方包,并验证您使用的是正确的版本来支持 Laravel 7。

请遵循此官方指南,它将成功升级您的 laravel 版本


推荐阅读