为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
莫回无 2022-10-14 15:47:42
根据文档将 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 在这个项目中没有做任何事情。在其他项目中,它工作正常。知道如何解决这个问题吗?
查看完整描述

4 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

删除bootstrap&storage/framework文件夹中的所有缓存后,仍然没有结果。

运行php artisan --help返回一些错误,这给了我一个提示问题所在。

检查升级指南后,我解决了这个问题,对我来说是:

  • App\Exceptions\Handler方法的变化

  • 安装require laravel/ui


查看完整回答
反对 回复 2022-10-14
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

对我来说,这是一个非常简单的错误和修复。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,一切正常。(不过,我的应用程序只定义了前两个函数。)


因此,需要注意文档。


查看完整回答
反对 回复 2022-10-14
?
www说

TA贡献1775条经验 获得超8个赞

您必须删除旧文件(缓存)。此命令应该有效:


cd bootstrap/cache/

rm -rf *.php

composer update

如果您是普通用户,请在每个命令之前添加sudo 。


查看完整回答
反对 回复 2022-10-14
?
倚天杖

TA贡献1828条经验 获得超3个赞

尝试这个 :


cd bootstrap/cache/

rm -rf *.php

然后composer update再一次。


查看完整回答
反对 回复 2022-10-14
  • 4 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信