【问题标题】:Laravel 6: FatalThrowableError: Class 'GuzzleHttp\Client' not found in TransportManager.phpLaravel 6:FatalThrowableError:在 TransportManager.php 中找不到类“GuzzleHttp\Client”
【发布时间】:2020-04-22 04:50:17
【问题描述】:

我刚刚将我的应用程序更新到 Laravel 6。

我正在通过 Mailgun 发送电子邮件,并且在我的本地环境中,我已确认一切正常。

但在暂存时出现以下错误:

Symfony\Component\Debug\Exception\FatalThrowableError: Class 'GuzzleHttp\Client' not found in /my/directory/laravel/vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php:193

我已运行 composer require guzzlehttp/guzzle 并三次检查它是否位于我的暂存服务器上的 vendor 文件夹和 autoload 文件中。

我的电子邮件是通过队列发送的。我从控制器方法中调用了 Guzzle,发现它没有问题,但是由于某种原因,当队列作业运行时,TransportManager 无法访问它。

同样,在我当地的宅基地环境中,电子邮件是通过 mailgun 发送的,没有错误。

我已经完成了artisan cache:clearartisan config:clear

我想不出还有什么可以尝试的。知道可能导致问题的原因吗?

【问题讨论】:

    标签: php composer-php guzzle mailgun laravel-6


    【解决方案1】:

    想通了... Laravel 队列使用了一些我不知道的代码缓存魔法。所以我的队列使用的是我运行 composer require guzzlehttp/guzzle 之前的旧代码。

    为了解决这个问题,我不得不运行 php artisan queue:restart

    然后我等待我的调度程序重新运行php artisan queue:work,我的电子邮件现在按预期发送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-22
      • 2019-08-29
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 2016-05-09
      • 2019-04-27
      • 2017-11-29
      相关资源
      最近更新 更多