laravel

Laravel læser ikke .env-fil efter ændring

Laravel læser ikke .env-fil efter ændring

Problem

Denne hvis et ret almindeligt problem, der dukker op blandt nye Laravel-udviklere.

Mange mennesker har forsøgt at opdatere deres .env-fil bare for at se, at når de opdaterer deres applikation, .env-konfigurationsværdier vises ikke.

Og hvad der er mere interessant er, at dette ofte vises, når du opgraderer din Laravel-version.

Så for eksempel ville du have dette i din .env-fil:

DB_DATABASE = laraveldb
DB_USERNAME = laravbruger

Derefter naturligt inde i konfigurationen / databasen.php-fil, du ville have denne:

'mysql' => [
'database' => env ('DB_DATABASE', 'lar'),
'brugernavn' => env ('DB_USERNAME', 'lar'),
]

smed her står for standardværdier. Dette betyder, at disse værdier vil blive brugt, hvis du ikke har angivet din DB_DATABASE og DB_USERNAME værdier inde i din .env-fil. Disse oplysninger vil komme nyttige om lidt.

Hvordan du ved nu, at du har dette specifikke problem, er, hvis du løber ind i følgende undtagelse:

PDOException: SQLSTATE [HY000] [1045] Adgang nægtet for bruger 'lar' @ 'localhost'
(ved hjælp af adgangskode: NEJ)

Dette viser tydeligt, at din Laravel-applikation henter standardværdien fra din config / database.php fil og ikke fra din .env .

Før du gør noget andet, kan du også prøve at bekræfte dette problem ved hjælp af php håndværker tinker:

>>> env ('DB_DATABASE')
=> null
>>> getenv ('DB_DATABASE')
=> falsk
>>> config ('database.forbindelser.mysql.database ')
=> “Lar”
>>> dd ($ _ ENV)
[]

Du vil ofte se, at det ikke gør nogen forskel at gøre følgende ting. Imidlertid prøver udviklere at teste deres konfiguration ved at køre en helt ny Laravel-installation og bare kopiere den gamle app-mappe. De kører ikke nogen komponistpakkeinstallationer eller gør noget andet.

Medmindre du er på Linux (jeg vil fortælle dig hvorfor lidt senere), vil du ikke se nogen ændringer.

Opløsning

Som altid er der mange ting, du kan gøre for at prøve at løse dette problem, men nogle få af dem er mere tilbøjelige til at få succes.

Ryd din konfigurationscache

Først og fremmest, hvis du ikke har det, skal du rydde din konfigurationscache, før du kan gøre noget andet.

Fordi vores kode bruger så mange biblioteker i dag, er vi tvunget til at cache ting for at give hurtig adgang til dem under runtime.

Jeg havde personligt problemer med dette på Windows og Mac, men jeg bemærkede, at af en eller anden grund, på Linux (Ubuntu), ryddes disse konfigurationsfiler enten med en slags krog, eller de caches slet ikke, fordi jeg var i stand til at genindlæs applikationen med ny .env-værdier uden at gøre følgende.

Sørg for at rydde din konfigurationscache ved at køre følgende kommandoer:

php håndværkskonfiguration: cache
php artisan config: klar

Kontroller, om der er tomme rum i dit .env-fil

Den næste løsning er med hensyn til at have hvide rum inde i din .env-fil. Og denne, hvis de fleste mennesker fejler og begynder at rive deres hår.

Det er meget let at gå glip af dette, men som et eksempel, hvad du kunne have i din .env-fil er sådan noget:

SITE_NAME = Min Laravel-applikation

Dette alene fungerer ikke, da hvide rum vil ødelægge .env-fil.

Hvad du skal gøre er at pakke dine værdier ind i citaterne på denne måde:

SITE_NAME = ”Min Laravel-applikation”

Denne gang skal alt fungere fint.

Bare sørg for at rydde din konfigurationscache hver gang du foretager en ændring. Vi kan gøre det samme som før:

php håndværkskonfiguration: cache
php artisan config: klar
Mus WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
Hvis du vil forbedre standardfunktionerne for din musemarkør, skal du bruge freeware WinMouse. Det tilføjer flere funktioner, der hjælper dig med at f...
Mus Museklik på venstre museknap fungerer ikke på Windows 10
Museklik på venstre museknap fungerer ikke på Windows 10
Hvis du bruger en dedikeret mus med din bærbare computer eller stationære computer, men musens venstre-klik-knap fungerer ikke på Windows 10/8/7 af en...
Mus Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Hvis du finder ud af, at din musemarkør hopper eller bevæger sig alene, automatisk tilfældigt, mens du skriver Windows-bærbar computer eller computer,...