質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.54%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

996閲覧

Laravel6 → Laravel7のバージョンアップで Target class [mail.manager] does not exist. というエラーになる

STC-H.M

総合スコア6

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2023/03/07 09:36

実現したいこと

Laravel6 → Laravel7 のバージョンアップで Target class [mail.manager] does not exist. というエラーが発生したため、解決したい

前提

  • PHP8.0、Laravel6 で動作しているアプリケーションを PHP8.0、Laravel7 にアップデートする
  • 公式ドキュメント に記載のあった「依存パッケージのアップデート」、「Symfony5へのアップグレード」、「認証」 を実行

発生している問題・エラーメッセージ

storage/logs

1testing.ERROR: Target class [mail.manager] does not exist. {"exception":"[object] (Illuminate\\Contracts\\Container\\BindingResolutionException(code: 0): Target class [mail.manager] does not exist. at /vendor/laravel/framework/src/Illuminate/Container/Container.php:811)

試したこと

  • 公式ドキュメント に記載の「メール」を実行しようとしましたが、「設定ファイルの変更」のURLリンクが404エラーとなってしまい、参照できませんでした

  • エラーメッセージで検索をかけ、同様の事象で解決に至っていた下記のコマンドを実行しましたが、エラーは変わりませんでした

    • composer require illuminate/mail
    • composer dump-autoload

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

MailServiceProvider をアプリ内で独自に生成し、registerIlluminateMailerをオーバーライドしていたことが原因で、mail.manager が見つけられていなかったようです。

オーバーライドしたメソッドにmail.managerを登録する記述を加えれば正常に動作しました。

投稿2023/03/08 01:39

STC-H.M

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

日本語版はあくまでも「非公式日本語訳」
公式はここだけ。
https://laravel.com/docs/7.x/upgrade
こっちなら正しい。とはいえconfig/mail.phpの変更は任意なので関係ない。
https://github.com/laravel/laravel/blob/7.x/config/mail.php

illuminate/mailは元からLaravelの一部なので全く関係ない。インストールしても除外される。

mail.managerはLaravel6にはなくて7から。
バージョンアップできていればこんな所でエラーになる要素はないので質問に書いてない部分で余計なことをしている。
https://github.com/laravel/framework/blob/88dd075b9f1beaff93796a0ee51818796ca04654/src/Illuminate/Mail/MailServiceProvider.php#L28

  1. まずcomposer update。post-autoload-dumpによってbootstrap/cacheのキャッシュも削除される。正確には即再生成。mail.managerはこのキャッシュを見るので見つからないということはキャッシュ内にないので再生成すれば解決するはず。

投稿2023/03/07 11:10

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

STC-H.M

2023/03/08 00:30

ご回答いただきありがとうございます! 実行内容としては、 `composer update` を再実行するというということであっていますでしょうか? 上記実行してみたのですが、エラー変わらずでした もし足りていない対応内容があればご教示いただきたいです
STC-H.M

2023/03/08 01:41

いただいた回答内容をヒントに自己解決いたしました! ご回答いただきありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。