我刚刚将我的应用程序更新到 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
文件中登台服务器。
我的电子邮件是通过队列发送的。我从 Controller 方法调用了 Guzzle,发现它没有问题,但由于某种原因,当队列作业运行时,TransportManager 无法访问它。
同样,在我本地的宅基地环境中,电子邮件是通过 mailgun 发送的,没有任何错误。
我已经完成了artisan cache:clear
和artisan config:clear
。
我想不出还有什么可以尝试的。知道是什么原因导致了这个问题吗?
最佳答案
弄清楚了...Laravel 队列使用了一些我不知道的代码缓存魔法。因此,我的队列使用的是运行 composer require guzzlehttp/guzzle
之前的旧代码。
为了解决这个问题,我必须运行php artisanqueue:restart
。
然后我等待调度程序重新运行 php artisanqueue:work
,我的电子邮件现在已按预期发送。
关于php - Laravel 6 : FatalThrowableError: Class 'GuzzleHttp\Client' not found in TransportManager. PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59581688/