Laravel 8にてenvファイルが反映されない場合の対処法

こんにちは。トビログ管理人のとびうおです。本日はLaravel8にてencファイルを更新したのに反映されないぞ!という場合どのようなことをしたらいいのかを説明していきます。

まずはキャッシュクリアのコマンド

php artisan config:cache
php artisan cache:clear

こちらのコマンドをまずは実行してみましょう。

直接envファイルを参照するな!

もしコントローラーやモデルからenvファイルを直接していしている場合、それが原因の可能性が大です。

理由としては先ほどのコマンド(キャッシュクリアするコマンド)が反映されないからです。

もしコントローラー上からenvファイルを見たい場合は、

コントローラーorモデル→コンフィグフォルダにファイルを作る→envファイル参照

という流れにしましょう。

具体的にどういうことかと言いうと、

コントローラーorモデルに

$this->client_id = env('line_client_id');

このように書くのではなく、cofigフォルダにline.phpというファイルを作って、その中に

// line.php
<?php
return [
    'client_id' => env('line_client_id'),
];

と書いて、コントローラーorモデル上で、

$this->client_id = Config('line.line_client_id');

と書くようにしましょう。

何をしているかと言うと

  1. コントローラー上でConfigメソッドを使ってConfigの値を参照しに行く。
  2. Configの値を参照しに行くと、envメソッドでenvファイルの値を参照しに行く。
  3. そのenvファイルの値が結果的に呼び出される。

この3のConfigを参照しにいくというのを一度挟むのがかなり重要なことになっています。

Configメソッドの使い方

これは非常に簡単で

Config('ファイル名.key名')

とすれば良いだけです。

一応configの中のファイルの書き方

// config/〇〇.php
<?php
return [
    'key名' => 返したい値,
];

このように書きます。

定数などを返したい時に使うことが多い気がします。

参考記事

設定 8.x Laravel

その他のおすすめ記事

Laravel
「Laravel」の記事一覧です。
自分が書いているLaravelの記事一覧です!
とびうお
ブログ管理人です!本人が書く記事は少なめ。。ごめんなさい))。

コメント

タイトルとURLをコピーしました