ホームページ >PHPフレームワーク >Laravel >envがlaravelでデータを取得できない場合はどうすればよいですか?

envがlaravelでデータを取得できない場合はどうすればよいですか?

WBOY
WBOYオリジナル
2022-06-02 17:14:524173ブラウズ

laravel では、「phpArtisan config:clear」ステートメントを使用して構成キャッシュをクリアし、env がデータを取得できない問題を解決できます。この問題の理由は、キャッシュ構成ファイルが環境を読み取ることです。これにより、環境変数が読み取られなくなるため、null が返されます。

envがlaravelでデータを取得できない場合はどうすればよいですか?

この記事の動作環境: Windows 10 システム、Laravel バージョン 5.4、Dell G3 コンピューター。

laravel の環境がデータを取得できない場合の対処方法

解決策:

Clear config Cache コマンド

php artisan config:clear

Reason

Laravel では、php aritisan config:cache コマンドを実行すると、Laravel は app/config ディレクトリ内のすべての設定ファイルを「コンパイル」し、bootstrap/ のキャッシュ設定ファイルに統合します。 ache/config.php では、各設定ファイルは env 関数を通じて環境変数を読み取ることができます。環境変数はここで読み取ることができます。ただし、このキャッシュ構成ファイルを取得すると、他の場所で env 関数を使用して環境変数を読み取ることはできないため、null が返されます。

このコードを見てみましょう、Illuminate/Foundation/Bootstrap/DetectEnvironment.php 行18:

public function bootstrap(Application $app){
        if(!$app->configurationIsCached()){
            $this->checkForSpecificEnvironmentFile($app);
            try{
                (newDotenv($app->environmentPath(),$app->environmentFile()))->load();
            }catch(InvalidPathException$e){
            }
        }
    }

このメソッドは、フレームワークの開始後に実行されます。このコードは、キャッシュ構成ファイルが存在する場合、環境変数は設定されないことを示しています。構成は環境を読み取るのではなく、キャッシュ構成ファイルを読み取ります。再び変数。

したがって、app/config ディレクトリの他の場所にある設定ファイルを読み取る場合は、環境変数を読み取るために env 関数を使用しないでください。このようにして、一度 php 職人 config:cache を実行すると、env 関数は機能しなくなります。 . .使用されるすべての環境変数は、app/config ディレクトリにある設定ファイルの env を通じて読み取られます。環境変数が他の場所で使用されている場合、env 関数を使用する代わりに設定ファイルが一律に読み込まれます。

[関連する推奨事項: laravel ビデオチュートリアル ]

以上がenvがlaravelでデータを取得できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。