在 Laravel 9 上找不到“Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunTransportFactory”类

Uğu*_*ıcı 11 laravel mailgun symfony-mailer

我只是想使用 Mailgun 从我的 Laravel 项目发送电子邮件,并按照官方文档中的步骤进行操作:https ://laravel.com/docs/9.x/mail#mailgun-driver

composer require symfony/mailgun-mailer symfony/http-client

当我尝试发送密码重置电子邮件来测试它时,它会抛出异常:

Class "Symfony\Component\Mailer\Bridge\Mailgun\Transport\MailgunTransportFactory" not found

这是完整的堆栈跟踪:https ://flareapp.io/share/oPRKqyZ7#share

我不知道,但也许是因为这个项目最初是 Laravel 8 项目,一周前我将其更新到 Laravel 9。它是否试图在应用程序目录中找到 Laravel 9 附带的东西或其他东西,但我的项目没有?我不明白。

顺便说一句,如果有帮助的话;该项目使用 Jetstream 以及 Inertia.js 和 Vue.js。所以composer.json现在看起来像这样:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.0.2",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.2",
        "inertiajs/inertia-laravel": "^0.5.4",
        "laravel/framework": "^9.2",
        "laravel/jetstream": "^2.4",
        "laravel/octane": "^1.0",
        "laravel/sanctum": "^2.14.1",
        "laravel/tinker": "^2.7",
        "sentry/sentry-laravel": "^2.11",
        "symfony/http-client": "^6.0",
        "symfony/mailgun-mailer": "^6.0",
        "tightenco/ziggy": "^1.0"
    },
    "require-dev": {
        "spatie/laravel-ignition": "^1.0",
        "fakerphp/faker": "^1.9.1",
        "laravel/sail": "^1.12",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^6.1",
        "phpunit/phpunit": "^9.5.10"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}
Run Code Online (Sandbox Code Playgroud)

小智 23

来自升级指南:

要继续使用 Mailgun 传输,您的应用程序应该需要 symfony/mailgun-mailer 和 symfony/http-client Composer 包:

所以使用:

composer require symfony/mailgun-mailer symfony/http-client
Run Code Online (Sandbox Code Playgroud)

更多信息请点击这里升级到 laravel 9


Uğu*_*ıcı 9

显然这是我在项目中使用的 Laravel Octane 的东西。我已经运行composer require symfony/mailgun-mailer symfony/http-clientcomposer auto-dump并在主管上重新启动我的进程,但没有任何改变。在 中,我杀死了所有进程(包括主管,它使 Laravel Octane 保持活动状态),然后重新启动它们。

我认为 Laravel Octane 无法加载更新的作曲家自动加载文件。当一切停止并重新启动时,它们工作得很好。