【问题标题】:how to upgrade laravel 6 to 7如何将 laravel 6 升级到 7
【发布时间】:2020-06-16 14:25:30
【问题描述】:

我正在尝试将 laravel 6 升级到 7,出现错误。

 our requirements could not be resolved to an installable set of
 packages.

   Problem 1
     - Conclusion: remove laravel/framework v6.0.3
     - Conclusion: don't install laravel/framework v6.0.3
     - laravel/ui 2.x-dev requires illuminate/console ^7.0 -> satisfiable by illuminate/console[7.x-dev, v7.0.0],
 laravel/framework[7.x-dev].
     - laravel/ui v2.0.0 requires illuminate/console ^7.0 -> satisfiable by illuminate/console[7.x-dev, v7.0.0],
 laravel/framework[7.x-dev].
     - Can only install one of: laravel/framework[7.x-dev, v6.0.3].
     - don't install illuminate/console 7.x-dev|don't install laravel/framework v6.0.3
     - don't install illuminate/console v7.0.0|don't install laravel/framework v6.0.3
     - Installation request for laravel/framework (locked at v6.0.3, required as ^6.0) -> satisfiable by laravel/framework[v6.0.3].
     - Installation request for laravel/ui ^2.0 -> satisfiable by laravel/ui[2.x-dev, v2.0.0].

【问题讨论】:

  • 当然,升级指南 是了解更改内容的实际位置。但我会谦虚地建议Shift 作为如何升级 Laravel 的答案。

标签: php laravel upgrade laravel-6


【解决方案1】:

按照文档操作,你一定已经安装了php7.2.5

将您的 laravel/framework 依赖项更新为 composer.json 中的 ^7.0 文件。

此外,将您的 nunomaduro/collision 依赖项更新为 ^4.1,

phpunit/phpunit 对 ^8.5 的依赖,

外观/点火到> `^2.0

之后作为下一步。

应用程序的App\Exceptions\Handler 类的报告和渲染方法应该接受Throwable 接口的实例,而不是异常实例:

use Throwable; // add this line

public function report(Throwable $exception); // replace Exception with Throwable
public function render($request, Throwable $exception); // replace Exception with Throwable

运行之后

composer update

【讨论】:

  • 这对我将 V6.20 升级到 7.30 有用
【解决方案2】:

更新以下包

"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5",

"laravel/ui": "^2.0",

"facade/ignition": "^2.0",

"laravel/framework": "^7.0",

为了更清楚,请转到Guide

如果 Handle.php 文件错误请查看Solution

【讨论】:

  • 我为我的作曲家添加了点火,然后编辑了句柄,它对我有用,谢谢
【解决方案3】:

根据 Laravel 文档从 laravel 6 升级到 laravel 7

composer.json 中将您的 laravel/framework 依赖项更新为 ^7.0 文件。此外,将您的 nunomaduro/collision 依赖项更新为 ^4.1phpunit/phpunit 依赖于 ^8.5facade/ignition 依赖于 `^2.0。

然后在终端中运行 composer update

composer update

https://laravel.com/docs/7.x/upgrade

【讨论】:

    【解决方案4】:

    laravel 7.0 需要 PHP 7.2.5。检查文档

    https://laravel.com/docs/7.x/upgrade

    【讨论】:

      【解决方案5】:

      如果您对此有任何疑问,请务必提前阅读本节内容并进行必要的更改。我发现我必须在 composer.json 中进行更改才能使其正常工作。从命令行开始,它一直在变化:

      身份验证

      脚手架 影响的可能性:高

      所有身份验证脚手架已移至 laravel/ui 存储库。如果你使用 Laravel 的认证脚手架,你应该安装这个包的 ^2.0 版本,并且这个包应该安装在所有环境中。如果您之前将此包包含在应用程序的 composer.json 文件的 require-dev 部分中,则应将其移至 require 部分:

      作曲家需要 laravel/ui "^2.0"

      【讨论】:

        【解决方案6】:

        您可以按照下面的视频/说明链接将您的 Laravel 6 项目升级到 Laravel 7:-

        https://youtu.be/8gyAkicohsU

        【讨论】:

          【解决方案7】:

          我正在处理现有代码,在/app/Exceptions/Handler.php 中的 5.8 版上是这样的:

           public function report(Exception $exception)
          {
              parent::report($exception);
          }
          

          我将 use Exception; 更改为 use Throwable; 并进行了此更改

           public function report(Throwable $exception)
          {
              parent::report($exception);
          }
          

          在将每个 Exception 更改为 Throwable 并更新所有依赖项和语言版本后,它就可以工作了。

          【讨论】:

            猜你喜欢
            • 2020-12-05
            • 2020-07-15
            • 2021-08-28
            • 1970-01-01
            • 2021-10-09
            • 2021-01-02
            • 2021-05-05
            • 2020-02-01
            • 2021-06-20
            相关资源
            最近更新 更多