【问题标题】:Laravel 5.4 Class 'GuzzleHttp\Client' not found in TransportManager.php (line 185)在 TransportManager.php 中找不到 Laravel 5.4 类“GuzzleHttp\Client”(第 185 行)
【发布时间】:2017-12-18 10:07:42
【问题描述】:

让我先解释一下我想要实现的目标 1. 用户提交申请会员的表格,应用程序向用户发送邮件确认用户的请求 2. 管理员批准或拒绝请求,应用程序向用户发送邮件通知他们

使用 mailtrap,我已经能够在本地完成这项工作。进入生产阶段,我已按照sending mail with sparkpost tutorial 中的步骤切换到使用 Sparkpost 但我不断收到错误

TransportManager.php 中找不到类“GuzzleHttp\Client”(第 185 行)

运行 composer require guzzlehttp/guzzle 后,我可以在 vendor 文件夹中看到 guzzle 文件夹

"require": {
    "php": ">=5.6.4",
    "guzzlehttp/guzzle": "^6.3",
    "laravel/framework": "5.4.*",
    "laravel/tinker": "~1.0"
},

我只是不明白为什么我会收到此错误或如何解决它。需要帮助解决此问题

【问题讨论】:

    标签: php email laravel-5 sparkpost


    【解决方案1】:

    您可能希望确保您首先包含 require './vendor/autoload.php(在 Laravel 中默认情况下应该是这种情况)。

    如果autoload.php已经被包含,你仍然得到这个错误,那么根据这个提交的错误-https://github.com/SparkPost/php-sparkpost/issues/37,你需要手动运行

    php composer.phar require guzzlehttp/guzzle

    【讨论】:

    • 我的供应商文件夹中有 autoload.php。你是这个意思吗?还是有一个文件我需要在里面放那条线?顺便说一句,我已经手动运行 composer require guzzlehttp/guzzle 并将其添加到我的 composer.json 文件中
    • 您需要验证在调用的代码路径的某些部分是否写有require ./vendor/autoload.php。仅将文件放在文件夹中无济于事。当您对该文件执行require 时,它会依次将已安装依赖项的所有类加载到您的代码中。一旦包含了这些类,您的编译器将在您使用它时停止抱怨缺少该类。
    • MemberController 是邮件正在启动,sp 由您响应我在最顶部添加了require './vendor/autoload.php',然后是其他所有内容。有一种非常强烈的感觉,我做错了,但这是正确的做法吗?错误和之前一样
    • 如果你手动将它添加到你的控制器,你必须提供vendor/autoload.php的相对路径。您可能还需要密切关注服务器的 error.log 文件以修复相关错误。
    【解决方案2】:

    最后通过执行以下操作使我的代码工作

    最初我运行 composer require guzzlehttp/guzzle 将 guzzlehttp/guzzle 添加到 composer.json 文件的 require 部分

    其次,我跑了composer update

    最后,我将文件从本地服务器上传到生产服务器。然后我将use GuzzleHttp\Client 添加到我的邮件控制器中,一切正常。

    我认为我之前缺少的是在需要 guzzlehttp/guzzle 后没有运行作曲家更新

    【讨论】:

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