我正在尝试使用Mandrill通过我的Laravel框架发送电子邮件,但是我收到以下错误:
MandrillTransport.php第114行中的FatalErrorException:Class 'GuzzleHttp \ Client'未找到
我在终端中使用以下命令安装了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我也尝试更新但仍然得到相同的错误。
答案 0 :(得分:16)
在项目的根目录中打开终端并输入
composer.phar require guzzlehttp/guzzle
适用于mailgun API。出于某种原因,在laravel的邮件文档
中建议的方法"guzzlehttp/guzzle": "~5.3|~6.0"
不会让作曲家下载Guzzle
源代码。顺便说一句,我没有找到|
在确定版本时的含义。此命令只下载PSR代码。
此时此解决方案可能有效。 但,请注意兼容性问题。因为该命令会安装最新的稳定版本,而不是合适的版本。
答案 1 :(得分:9)
如果您在遇到此错误时使用 Laravel ,请运行:
composer require guzzlehttp/guzzle
再试一次。
答案 2 :(得分:6)
更新composer.json
文件后,您需要运行update命令来解析和安装依赖项:
composer update
或者,如果作曲家不在您的路径中:
php composer.phar update
答案 3 :(得分:2)
你有没有尝试过:
artisan clear-compiled
或者如果没有工匠,请尝试删除compiled.php(如果存在)(在供应商目录中)并启动composer dumpautoload
答案 4 :(得分:1)
我有同样的问题。 我使用旧版本才能工作。 它从版本4开始不再起作用了。 它适用于版本3.8.1
所以你可以添加“guzzlehttp / guzzle”:“〜3”来作品
答案 5 :(得分:0)
当我在一个独立文件中测试时,我尝试在Laravel框架之外运行我的代码时出现此错误。当我把它移到控制器内时,它对我有用。
答案 6 :(得分:0)
您可以解决此问题,将"mews/captcha": "1.0.1"
和"guzzlehttp/guzzle": "~4.0"
添加到composer.json文件中。然后您需要在终端上运行composer update
命令。
我试过Laravel 4.它对我有用。
答案 7 :(得分:0)
简单"guzzlehttp/guzzle": "^6.3"
中添加composer.json
需要如下所述的对象
"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
的效果还好。
答案 8 :(得分:-1)
我不知道为什么这对我有用,我在某个论坛上看到了这个
我刚将此验证码生成器添加到composer.json文件
git pull --rebase
将其添加到所有需求包
"mews/captcha": "~2.0.",
如果有人知道为什么会这样,那真的会刮伤我脑中的痒。