私のenv()
ヘルパーが常にnull
を返す理由を見つけようとします。これは、特に_app.php
_ファイルで問題を引き起こします。デフォルトでは、env()
ヘルパーが広く使用されています。おそらく不思議なサーバー設定でしょうか?
私のenvファイル:
_APP_ENV=production
APP_KEY=base64:mymagickey=
APP_DEBUG=false
APP_LOG_LEVEL=info
APP_URL=http://www.example.com
etc...
_
編集-私は以下を試しました:
_php artisan cache:clear
php artisan view:clear
php artisan config:cache
_
そしてもちろん、私はenv
ヘルパーを次のように使用しています:env('APP_ENV')
しかし、まだ成功していません。奇妙な部分は、_$_ENV
_ php変数には_.env
_ファイルからのすべての単一変数が含まれているということです。
env(...)
関数は、構成をキャッシュした後は機能しません。 (laravel 5.2から現在の5.7まで)
デプロイ中に
config:cache
コマンドを使用している場合は、アプリケーションの他の場所からではなく、構成ファイル内からのみenv
関数を呼び出していることを確認する必要があります。
だから正しい答えは
アプリケーション内からenvを呼び出す場合、適切な構成値を構成ファイルに追加し、代わりにその場所からenvを呼び出して、env呼び出しをconfig呼び出しに変換できるようにすることを強くお勧めします。
そして、同じ documentation から引用しました
しかし、簡単な修正のためにこれは行います:
php artisan config:clear
これで、config:cache
を試したときに、キャッシュの前に構成がクリアされても、それが役に立たなかった理由が明らかになります。
このコマンドがあなたを救うことを願っています
php artisan config:clear
あなたのLaravelが.envまたはデータベースフォルダーの変更後、または他の変更のために期待どおりに動作しない場合の5つの最も重要なコマンド。完全な説明は次のとおりです。 https:// www.youtube.com/watch?v=Q1ynDMC8UGg
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
composer dump-autoload
これは「.env」の既知のバグであり、次の方法で解決できます。
php artisan config:cache
\Config::get('app.env');
の代わりにenv(APP_ENV);
を使用してください。最終的には同じエラーが発生し、ライブWebサイトには向かないためです。
ENVからカスタム変数を追加する場合は、設定アプリに移動して次を見つけます。
_/*
|--------------------------------------------------------------------------
| Application Environment
|--------------------------------------------------------------------------
|
| This value determines the "environment" your application is currently
| running in. This may determine how you prefer to configure various
| services your application utilizes. Set this in your ".env" file.
|
*/
'env' => env('APP_ENV', 'production'),
_
「'env' => env('APP_ENV', 'production'),
」の下に新しい行を追加します。たとえば、次のようになります。
_/*
|--------------------------------------------------------------------------
| Application Environment
|--------------------------------------------------------------------------
|
| This value determines the "environment" your application is currently
| running in. This may determine how you prefer to configure various
| services your application utilizes. Set this in your ".env" file.
|
*/
'env' => env('APP_ENV', 'production'),
'key' => env('APP_KEY'),
_
次のように「キー」変数を呼び出すことができます。
_\Config::get('app.key');
_
「key」などの新しい変数をアプリenvに追加するたびに、_config:cache
_を使用してキャッシュをリセットする必要があります。
古いバージョンのPHPがサーバーにインストールされているように見えますが、これはLaravelの_.env
_パッケージが正常に動作するために使用できません。 PHP 7がインストールされている別のサーバーにWebサイトを展開すると、env()
は期待どおりの値を返しました。