Laravel non sta leggendo .File Env dopo la modifica

Laravel non sta leggendo .File Env dopo la modifica

Problema

Questo se un problema abbastanza comune che si presenta tra i nuovi sviluppatori di Laravel.

Molte persone hanno cercato di aggiornare il loro .file env solo per vedere che quando aggiornano la loro applicazione, il .I valori di configurazione non vengono visualizzati.

E la cosa più interessante è che abbastanza spesso, questo verrà visualizzato dopo aver aggiornato la tua versione di Laravel.

Quindi, ad esempio, lo avresti nel tuo .File di Env:

Db_database = laraveldb
Db_username = laraveluser

Quindi naturalmente, all'interno del database di configurazione.File PHP avresti questo:

'mysql' => [
'database' => env ('db_database', 'laR'),
'nome utente' => env ('db_username', 'lar'),
"

Forge qui rappresenta i valori predefiniti. Ciò significa che questi valori verranno utilizzati nel caso in cui non hai fornito il tuo Db_database E Db_username valori all'interno del tuo .File Env. Queste informazioni saranno utili tra un po '.

Ora, come sai di avere questo problema specifico è se ti imbatti nella seguente eccezione:

PDoException: SQLSTATE [HY000] [1045] Accesso negato per l'utente "Lar"@"LocalHost"
(Utilizzo della password: no)

Questo mostra chiaramente che la tua applicazione Laravel sta attirando il valore predefinito dal tuo config/database.PHP file e non dal tuo .env .

Prima di fare qualsiasi altra cosa, puoi anche provare a verificare questo problema usando anche l'artigiano artigianale:

>>> env ('db_database')
=> null
>>> getenv ('db_database')
=> false
>>> config ('database.connessioni.mysql.Banca dati')
=> "Lar"
>>> dd ($ _ env)
[

Vedrai spesso che fare la cosa seguente non farà neanche la differenza. Tuttavia, gli sviluppatori cercano di testare la loro configurazione eseguendo un'installazione di Laravel completamente nuova e solo copiando la vecchia cartella dell'app. Non eseguono installazioni di pacchetti compositori o fanno qualcos'altro.

A meno che tu non sia su Linux (ti dirò perché un po 'più tardi), non vedrai alcuna modifica.

Soluzione

Come sempre, ci sono molte cose che puoi fare per cercare di risolvere questo problema, ma alcune di loro hanno maggiori probabilità di avere successo.

Cancella la cache di configurazione

Prima di tutto, se non l'hai fatto, devi cancellare la cache di configurazione prima di poter fare qualcos'altro.

Poiché il nostro codice sta usando così tante librerie al giorno d'oggi, siamo costretti a memorizzare nella cache le cose per fare un rapido accesso a loro durante il runtime.

Personalmente ho avuto problemi con questo su Windows e Mac, tuttavia, ho notato che per qualche motivo, su Linux (Ubuntu) questi file di configurazione sono stati cancellati con una sorta di gancio o non vengono affatto memorizzati nella cache, perché ero in grado di farlo Ricarica l'applicazione con nuovo .Valori Env senza fare quanto segue.

Assicurati di cancellare la cache di configurazione eseguendo i seguenti comandi:

PHP Artisan Config: Cache
PHP Artisan Config: Clear

Controlla gli spazi vuoti all'interno del tuo .File Env

La soluzione successiva è in termini di spazi bianchi all'interno del tuo .File Env. E questo se la maggior parte delle persone fallisce e inizia a strappargli i capelli.

È molto facile perderlo, ma come esempio quello che potresti avere nel tuo .Il file env è qualcosa di simile:

Site_name = la mia applicazione Laravel

Questo da solo non funzionerà poiché gli spazi bianchi corromperanno il .File Env.

Quello che devi fare è avvolgere i tuoi valori all'interno delle citazioni in questo modo:

Site_name = "la mia applicazione Laravel"

Questa volta tutto dovrebbe funzionare bene.

Assicurati di cancellare la cache di configurazione ogni volta che apporti una modifica. Possiamo farlo come prima:

PHP Artisan Config: Cache
PHP Artisan Config: Clear