猿问

更新到 Laravel 7 php artisan 后无法正常工作

根据文档将 Laravel 升级到 v7 后,我运行了 composer update。然后我得到这个:


脚本@php artisan package:discover --ansi 处理返回的自动加载转储后事件,错误代码为 255


这是我的 composer.json 文件:


{

    "name": "laravel/laravel",

    "type": "project",

    "description": "The Laravel Framework.",

    "keywords": [

        "framework",

        "laravel"

    ],

    "license": "MIT",

    "require": {

        "php": "^7.1.3",

        "fideloper/proxy": "^4.0",

        "guzzlehttp/guzzle": "^6.5",

        "kitetail/zttp": "^0.6.0",

        "laravel/framework": "^7.0",

        "laravel/tinker": "^2.0",

        "laravel/telescope": "^2.1",

        "laravelcollective/html": "^6.0",

        "livewire/livewire": "^0.7.4",

        "spatie/laravel-html": "^2.24",

        "spatie/laravel-permission": "^3.0.0"

    },

    "require-dev": {

        "barryvdh/laravel-debugbar": "^3.2",

        "filp/whoops": "^2.0",

        "fzaninotto/faker": "^1.4",

        "laravel/ui": "^2.0",

        "mockery/mockery": "^1.0",

        "nunomaduro/collision": "^4.1",

        "phpunit/phpunit": "^7.5"

    },

    "config": {

        "optimize-autoloader": true,

        "preferred-install": "dist",

        "sort-packages": true

    },

    "extra": {

        "laravel": {

            "dont-discover": []

        }

    },

    "autoload": {

        "psr-4": {

            "App\\": "app/"

        },

        "classmap": [

            "database/seeds",

            "database/factories"

        ]

    },

    "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 artisan 在这个项目中没有做任何事情。在其他项目中,它工作正常。知道如何解决这个问题吗?

莫回无
浏览 121回答 4
4回答

慕的地8271018

删除bootstrap&storage/framework文件夹中的所有缓存后,仍然没有结果。运行php artisan --help返回一些错误,这给了我一个提示问题所在。检查升级指南后,我解决了这个问题,对我来说是:App\Exceptions\Handler方法的变化安装require laravel/ui包

翻过高山走不出你

对我来说,这是一个非常简单的错误和修复。7.x 升级文档的相关部分说明如下:Symfony 5 相关升级影响的可能性:高Laravel 7 使用了 5.x 系列的 Symfony 组件。需要对您的应用程序进行一些小的更改以适应此升级。首先,应用程序的 App\Exceptions\Handler 类的 report、render、shouldReport 和 renderForConsole 方法应该接受 Throwable 接口的实例而不是 Exception 实例:use Throwable;public function report(Throwable $exception); public function shouldReport(Throwable $exception);public function render($request, Throwable $exception);public function renderForConsole($output, Throwable $exception);相关文件:./App/Exceptions/Handler.php 更改:将“Exception”实例转换为“Throwable”(编辑器搜索和替换)所以,基本上,一旦我把改变到位,'php artisan' 又开始工作了。这包括 OP 的 composer.json (和我的)中的 package:discover 命令。我尝试将其放回异常,而工匠命令将无法执行任何操作。将 Exception 的出现更改为 Throwable,一切正常。(不过,我的应用程序只定义了前两个函数。)因此,需要注意文档。

www说

您必须删除旧文件(缓存)。此命令应该有效:cd bootstrap/cache/rm -rf *.phpcomposer update如果您是普通用户,请在每个命令之前添加sudo 。

倚天杖

尝试这个 :cd bootstrap/cache/rm -rf *.php然后composer update再一次。
随时随地看视频慕课网APP
我要回答