Laravelで、.envファイルの情報を変更を設定した後、なぜか設定が反映されないことがありました。
私はMAIL_ADMINの項目を.envファイルに追加したものの、なぜか反映されず。
Trying to get property ‘email’ of non-object
no valid recipients
などのエラーに見舞われました。
試行錯誤の後、どうやら .envファイルへの変更内容が反映されていないことに気づいたのです。
LaravelのMAIL_ADMINなどenv設定が反映されない時の対策
Laravelのサーバーを立ち上げているときは、まずはサーバーを立ち上げなおしましょう。
1 |
php artisan serve |
それでもだめなら、下記のコマンドを入力してください。
1 |
php artisan config:clear |
これは、キャッシュをクリアしてくれるコマンドです。
この後に再度、実行してみてください。
LaravelのMAIL_ADMINなどenv設定が反映されないエラーの原因
私はこの config:clear コマンドを、GitHubのツールをインストールするために使いました。
そもそもキャッシュをクリアして、新たな設定内容を反映してくれるためのコマンドです。
この時は良かったものの、どうやらその後、env設定内容を更新したときに反映されないエラーが起こったのです。
推測ながら、どうも、このコマンドが原因な気が…
一度実施してしまうと、再度キャッシュをクリアしなければ、.envの設定変更が反映されなくなってしまうような気がしています。
断定はできないので、また何かあれば記事に追加しておきますね。
Laravel8では同じことは起こらない! かも
Laravel7では、envファイルの内容を変更した後、サーバーを立ち上げなおさなければ変更は反映されません。
このような仕様が、このエラーを引き起こしているとも言えますよね。
Laravel8では、うれしいことにこの部分が改善されている模様。
Laravel8の公式のリリースノートでは、次のように書かれています。
The Artisan
serve
command has been improved with automatic reloading when environment variable changes are detected within your local.env
file. Previously, the command had to be manually stopped and restarted.
翻訳ローカル環境で環境変数の変更が検出された場合、Artisan Serve Command は、自動で再読み込みしてくれるようになった。
以前は手動でコマンドをとめて、再度実行する必要があった。
今後はこのエラーがないことを祈りましょう。
Laravel8の14個の更新内容は下記の記事にまとめているので、他の変更内容にも興味があれば、目を通してみてくださいね。