【问题标题】:How to fix laravel/ui error to upgrade Laravel after upgrading PHP to 8.0 [duplicate]将PHP升级到8.0后如何修复laravel / ui错误以升级Laravel [重复]
【发布时间】:2021-03-21 21:55:54
【问题描述】:

在 PHP 升级到 8.0 后,我正在尝试升级 Laravel,在 macos 上使用 brew,但我收到以下错误。我应该如何解决它?

$ composer update                                                                                                                  ✔ │ 59% hdd │ 5.43G RAM │ 14:05:07 │ ⇣0.18 KiB/s ⇡1.51 KiB/s 192.168.1.69 IP │ 213.163.173.1 IP 
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: don't install laravel/framework v8.12.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.12.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.12.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.12.3 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.13.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.14.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.15.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.16.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.16.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.17.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.17.1 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.17.2 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.18.0 (conflict analysis result)
    - Conclusion: don't install laravel/framework v8.18.1 (conflict analysis result)
    - laravel/ui[v2.1.0, ..., v2.4.1] require php ^7.2.5 -> your php version (8.0.0) does not satisfy that requirement.
    - illuminate/support[v7.0.0, ..., v7.28.4] require php ^7.2.5 -> your php version (8.0.0) does not satisfy that requirement.
    - laravel/framework[v8.0.0, ..., v8.11.2] require php ^7.3 -> your php version (8.0.0) does not satisfy that requirement.
    - laravel/ui[v2.5.0, ..., 2.x-dev] require illuminate/support ^7.0 -> satisfiable by illuminate/support[v7.0.0, ..., 7.x-dev].
    - Only one of these can be installed: illuminate/support[dev-master, v5.5.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev], laravel/framework[v8.0.0, ..., 8.x-dev]. laravel/framework replaces illuminate/support and thus cannot coexist with it.
    - Root composer.json requires laravel/framework ^8.0 -> satisfiable by laravel/framework[v8.0.0, ..., 8.x-dev].
    - Root composer.json requires laravel/ui ^2.1 -> satisfiable by laravel/ui[v2.1.0, ..., 2.x-dev].

=== 编辑 2020-12-10 ===

composer.json:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^8.0",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.0.1",
        "laravel/framework": "^8.0",
        "laravel/passport": "^10.0.1",
        "laravel/tinker": "^2.0",
        "laravel/ui": "^2.1"
    },
    "require-dev": {
        "facade/ignition": "^2.3.6",
        "fakerphp/faker": "^1.9.1",
        "mockery/mockery": "^1.3.1",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^9.3"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

下面

【问题讨论】:

    标签: php laravel composer-php laravel-8 php-8


    【解决方案1】:

    正如在这些多行错误中所写的那样:您使用的是过时的包,它们与 PHP 8 不兼容,彼此也不兼容。

    你在 v2 中需要 laravel/ui,它只支持 Laravel v7,以及 laravel/framework,它是 Laravel v8 的核心。要么将 laravel/ui 更新到 v3,要么将 Laravel 降级到 v7。从我的角度来看,这个问题与 PHP8 无关 - 你之前没有遇到任何问题是一个奇迹

    【讨论】:

    • 我正在按照本指南进行更新:blog.laravel.com/laravel-php-8-support
    • 那么,你能分享更多细节吗,比如composer.json的内容?
    • 抱歉,我可能发现了问题 - 需要编辑我的答案
    • 我刚刚更新了我的答案以包括我的composer.json
    • 非常感谢!确实将package.json 更新为"laravel/ui": "^3.0" 解决了我的问题。不知道为什么对这个问题投了这么多反对票。
    猜你喜欢
    • 2019-09-21
    • 2021-09-29
    • 2021-08-17
    • 2018-07-13
    • 2021-03-27
    • 2018-06-17
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多