Ich versuche herauszufinden, warum mein env()
Helfer immer zurückkommt null
. Dies führt insbesondere in app.php
Dateien zu Problemen, in denen env()
standardmäßig häufig verwendete Helfer verwendet werden. Vielleicht eine mysteriöse Servereinstellung?
Meine env-Datei :
APP_ENV=production
APP_KEY=base64:mymagickey=
APP_DEBUG=false
APP_LOG_LEVEL=info
APP_URL=http://www.example.com
etc...
BEARBEITEN - Ich habe Folgendes versucht :
php artisan cache:clear
php artisan view:clear
php artisan config:cache
und natürlich benutze ich env
helfer wie folgt :env('APP_ENV')
Aber immer noch kein Erfolg. Der seltsame Teil ist, dass die $_ENV
PHP-Variable jede einzelne Variable aus der .env
Datei enthält.
quelle
php artisan config:clear
das einzige, was dazu beigetragen hat, dass meine AWS SES-Anmeldeinformationen gelesen wurden.env('APP_ENV')
in unserer Anwendung verwenden. Stattdessen sollten wir eine Zeile schreiben inconfig/app.php
:'env' => env('APP_ENV'),
. Dann verwenden wir es in unserem Code :config('app.env')
.Hoffe, dieser Befehl wird dich retten
quelle
Fünf wichtige Befehle, wenn Ihr Laravel nach einigen Änderungen in .env oder im Datenbankordner oder aufgrund anderer Änderungen nicht wie erwartet funktioniert. Hier finden Sie eine vollständige Erklärung: https://www.youtube.com/watch?v=Q1ynDMC8UGg
quelle
php artisan config:cache
funktioniert nicht. Nachdem ich ausgeführtphp artisan config:clear
habe, funktioniert es. Jetzt kann ich wieder env ($ key) verwenden. Thx @LearnerVerwenden Sie
\Config::get('app.env');
stattdessen,env(APP_ENV);
weil Sie irgendwann den gleichen Fehler erhalten und dies für eine Live-Website nicht gut ist.Wenn Sie benutzerdefinierte Variablen aus Ihrer ENV hinzufügen möchten, rufen Sie Ihre Konfigurations-App auf und suchen Sie Folgendes:
/* |-------------------------------------------------------------------------- | 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'),
Fügen Sie unter "
'env' => env('APP_ENV', 'production'),
" eine neue Zeile hinzu. Dies kann beispielsweise Folgendes sein:/* |-------------------------------------------------------------------------- | 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'),
Sie können die Variable "key" folgendermaßen aufrufen:
\Config::get('app.key');
Immer wenn Sie der App-Umgebung eine neue Variable wie "Schlüssel" hinzufügen, müssen Sie
config:cache
den Cache zurücksetzen.quelle
Der folgende Befehl hat bei mir funktioniert. Ich habe versehentlich alle Cache-Dateien gelöscht. Also
env('something')
wurde null zurückgegeben.quelle
Es ist ein ".env" bekannter Fehler, der behoben werden kann mit:
quelle
Wenn die akzeptierte Antwort das Problem nicht behebt, überprüfen Sie, ob die ENV-Datei über die richtige Lese- und Schreibberechtigung verfügt. Wenn die Datei nicht vom Framework / der Bibliothek gelesen werden kann, sind die Werte immer null. Ich bin bei einem meiner Lumen-Projekte auf dieses Problem gestoßen, aber nach dem Ändern der Dateiberechtigungen hat es funktioniert.
quelle
Ich weiß, dass dies ein sehr alter Thread ist und der Grund möglicherweise nicht der gleiche ist. Aber das gleiche Problem ist mir passiert.
Der Grund war, dass ich ein Problem in der .env-Datei hatte. Das habe ich in .env bekommen
TEST="e@1asa
Beachten Sie, dass das Endzitat fehlt. Und es sollte so sein,
TEST="e@1asa"
Alle env-Variablen, die ich danach hinzugefügt habe, haben aufgrund dieses Fehlers null zurückgegeben.
Es wurde auch nichts in das Fehlerprotokoll geschrieben. Wenn Sie diesen Fehler festgestellt haben , fügen Sie eine Beispiel-Env-Variable als ersten Datensatz der Datei hinzu . Wenn es funktioniert und die Aufzeichnung endlich nicht funktioniert, liegt möglicherweise ein Fehler in .env vor
quelle
Platzieren Sie die ENV-Datei im Stammordner des Projekts
Fügen Sie diese der Datei app.php hinzu.
try { (new Dotenv\Dotenv(__DIR__.'/../'))->load(); } catch (Dotenv\Exception\InvalidPathException $e) { echo $e; }
quelle