ホームページ >PHPフレームワーク >Laravel >envがlaravelでデータを取得できない場合はどうすればよいですか?
laravel では、「phpArtisan config:clear」ステートメントを使用して構成キャッシュをクリアし、env がデータを取得できない問題を解決できます。この問題の理由は、キャッシュ構成ファイルが環境を読み取ることです。これにより、環境変数が読み取られなくなるため、null が返されます。
この記事の動作環境: Windows 10 システム、Laravel バージョン 5.4、Dell G3 コンピューター。
解決策:
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 サイトの他の関連記事を参照してください。