Laravel错误-类setEventDispatcher不存在

Zet*_*eth 6 laravel

简洁版本

运行php artisan serve并访问我的主页时,出现此错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

细节

Laravel版本:5.6.39环境:本地操作系统:macOS Mojave 10.14.2

当我npm在另一个项目中使用时出现错误时,它开始了,所以我重新安装了Node (这种方式)

完成此操作后,该项目(正在讨论中)将无法启动。运行时出现此错误php artisan serve

dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib with anything php related
Referenced from: /usr/local/bin/php
Reason: image not found
Run Code Online (Sandbox Code Playgroud)

通过更新和升级brew解决了该错误。

然后,我能够启动项目(php artisan serve)。但是当我访问主页时,显示此错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

如果我遵循堆栈跟踪,那么我可以看到正是此行(来自my homeController)触发了错误:

if( ! Auth::check() ){
  return view( 'pages.home' );
}
Run Code Online (Sandbox Code Playgroud)

如果我将其注释掉,则从另一个Auth使用-module的地方也会发生相同的错误。

这是堆栈跟踪:

setEventDispatcher不存在错误

有谁知道如何解决这个问题?我在Google上找不到任何有希望的结果,-我也不知道为什么会这样...:-/

加法1

我尝试composer clear-cache删除供应商文件夹,然后再执行a composer install,问题仍然出现。

正如Marcus所建议的,我还检查了我的服务提供商-但我真的不知道在那寻找什么。一切看起来都很规律(没有花哨的if陈述或其他内容)。

加法2

我意识到,我无法使用Sequel Pro连接到数据库。这是因为Brew将我的MySQL版本从5.5更新到了8.0。

通过按照以下方式做一些事情可以解决(我做了很多事情,所以我可能缺少很多步骤):

brew unlink mysql
brew install mysql@5.7
brew switch mysql 5.7.21
brew link mysql
Run Code Online (Sandbox Code Playgroud)

然后我可以使用验证版本mysql --version。我也有一些关于MySQL版本更改的权限问题,但是我正在发出它,所以这个时间不会太长。

加法3

我试图禁用Laravel Debugbar(通过将其删除composer.json,删除composer.lockvendor,然后运行composer install)。这样就解决了!...但是!

当我稍后尝试安装Barryvdh的IDE Helper时,又出现了完全相同的错误

我执行了以下三个步骤来安装IDE Helper(并重新引入该错误):

  1. 从我的目录的根目录运行以下命令: curl https://gist.githubusercontent.com/barryvdh/5227822/raw/4be028a27c4ec782965bb8f2fdcb4c08c71a441d/_ide_helper.php -o _ide_helper.php

  2. 将这些行添加到app/Provider/AppServiceProvider.php

...

if ($this->app->environment() !== 'production') {
  $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
Run Code Online (Sandbox Code Playgroud)
  1. 运行以下命令: composer require --dev barryvdh/laravel-ide-helper

所以我回到了这个错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

...堆栈跟踪与先前显示的相同(从Container.php弹出)。

小智 3

尝试了所有解决方案,但没有一个有效。

最后,我意识到,当尝试将 php 升级到 7.3.3 时,实际上是网络错误导致了失败。阅读日志,重试,重新启动代客并重试。

现在可以了。

升级到 7.3.3 确实是解决方案。

谢谢你!