php laravel http,关于php:Laravel:找不到类’GuzzleHttpClient’

我正在尝试使用Mandrill通过我的Laravel框架发送电子邮件,但是我收到以下错误:

FatalErrorException in MandrillTransport.php line 114: Class

'GuzzleHttp\Client' not found

我已经在终端中使用以下命令安装了Guzzle:

"guzzlehttp/guzzle":"~4.0"

根据Laravel的文档,我需要将"guzzlehttp/guzzle":"~4.0"添加到我的composer.json文件中,但是由于我仍然看到错误,因此我不确定将其放置在哪里是否正确。

{

"name":"laravel/laravel",

"description":"The Laravel Framework.",

"keywords": ["framework","laravel"],

"license":"MIT",

"type":"project",

"require": {

"laravel/framework":"5.0.*",

"illuminate/html":"^5.0",

"guzzlehttp/guzzle":"~4.0"

},

"require-dev": {

"phpunit/phpunit":"~4.0",

"phpspec/phpspec":"~2.1"

},

"autoload": {

"classmap": [

"database"

],

"psr-4": {

"App\":"app/"

}

},

"autoload-dev": {

"classmap": [

"tests/TestCase.php"

]

},

"scripts": {

"post-install-cmd": [

"php artisan clear-compiled",

"php artisan optimize"

],

"post-update-cmd": [

"php artisan clear-compiled",

"php artisan optimize"

],

"post-create-project-cmd": [

"php -r "copy('.env.example', '.env');"",

"php artisan key:generate"

]

},

"config": {

"preferred-install":"dist"

}

}

这是我的应用程序具有的软件包列表,请注意guzzle具有不同的版本:4.2.3我也曾尝试将其更新到,但仍然遇到相同的错误。

16cea4e5fe6afad94fbfbe25afac9e43.png

如何解决这个问题?

在项目的根目录下打开终端,然后输入

composer require guzzlehttp/guzzle

它适用于mailgun API。由于某种原因,laravel的邮件文档中建议使用此方法。您可以通过将以下行添加到您的composer.json文件中,将该软件包安装到您的项目中

"guzzlehttp/guzzle":"~5.3|~6.0"

不会使作曲家下载Guzzle源代码。顺便说一句,我没有发现|在确定版本时意味着什么。此命令仅下载PSR代码。

此时,解决方案可能会起作用。但是,请注意兼容性问题。因为该命令将安装最新的稳定版本,而不是合适的版本。

非常感谢,它为我工作。

如果遇到此错误时正在使用Laravel,请运行:

composer require guzzlehttp/guzzle

然后再试一次。

更新composer.json文件后,您需要运行update命令来解决和安装依赖项:

composer update

或者,如果作曲家不在您的路上:

php composer.phar update

香港专业教育学院尝试过此,但问题仍然存在。这是composer update的输出:Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files Generating optimized class loader

@Imran看到您的更新后,看起来Guzzle已正确安装,但未自动加载。您的作曲家自动加载器应具有GuzzleHttp的条目(签入vendorcomposerautoload_psr4.php并让我知道GuzzleHttp是否有一行)。我只是熟悉作曲家,而不是Laravel,但您似乎应该运行命令php artisan dump-autoload重新生成Laravels自动加载器。

我尝试使用php artisan dump-load,但收到命令未定义的错误。我也尝试过composer dump-autoload生成自动加载文件,但在我的原始问题中仍收到相同的Class not found错误。

你试过了吗 :

artisan clear-compiled

或如果artisan不可用,请尝试删除compile.php(如果存在)(在供应商目录中)并启动composer dumpautoload

是的,我已经尝试过了,但是仍然收到错误消息。我的供应商目录中没有Compiled.php文件,我已经运行composer dump-autoload

也许您应该删除composer.lock和vendor文件夹,如果可能,请尝试重新安装所有文件夹。

就我而言,很简单,在composer.json中添加"guzzlehttp/guzzle":"^6.3"

需要如下所述的对象

"require": {

"php":">=7.0.0",

"ext-gd":"*",

"barryvdh/laravel-cors":"^0.11.2",

"barryvdh/laravel-dompdf":"^0.8.1",

"dingo/api":"2.0.0-alpha1",

"doctrine/dbal":"^2.6",

"fideloper/proxy":"~3.3",

"guzzlehttp/guzzle":"^6.3",

"intervention/image":"^2.4",

"laravel/framework":"5.5.*",

"laravel/tinker":"~1.0",

"league/flysystem-aws-s3-v3":"~1.0",

"predis/predis":"^1.1",

"tymon/jwt-auth":"dev-develop"

},

比使用终端在项目根目录中运行composer update更好。

我遇到过同样的问题。

我使用了旧版本才能正常工作。

从版本4开始,它不再起作用。

它适用于版本3.8.1

因此,您可以添加" guzzlehttp / guzzle":"?3"

您可以解决此问题,以将"mews/captcha":"1.0.1"和"guzzlehttp/guzzle":"~4.0"添加到您的composer.json文件。然后,您需要在终端上运行composer update命令。

我已经尝试过Laravel4。它对我有用。

当我在独立文件中进行测试时,尝试在Laravel框架之外运行代码时遇到此错误。当我将其移动到控制器中时,它对我有用。

我忘了为什么这对我有用,我在某个地方的论坛上看到了

我刚刚将此验证码生成器添加到composer.json文件

"mews/captcha":"~2.0.",

将其添加到所有需求包

"require": {

"php":">=5.5.9",

"laravel/framework":"5.1.*",

"laravelcollective/html":"5.1.*",

"laracasts/flash":"~1.3",

"mews/captcha":"~2.0.",

"guzzlehttp/guzzle":"~4.0"

},

如果有人知道为什么这样有效,那确实会伤脑筋。

可能是因为喵/验证码需要依赖项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值