Problema
Este es un problema bastante común que aparece entre los nuevos desarrolladores de Laravel.
Mucha gente ha intentado actualizar sus .env archivo solo para ver que cuando actualizan su aplicación, el .los valores de configuración de env no se muestran.
Y lo que es más interesante es que, con bastante frecuencia, esto aparecerá después de actualizar su versión de Laravel.
Entonces, por ejemplo, tendrías esto en tu .archivo env:
DB_DATABASE = laraveldbDB_USERNAME = laraveluser
Entonces, naturalmente, dentro de la configuración / base de datos.php, tendrías esto:
'mysql' => ['base de datos' => env ('DB_DATABASE', 'lar'),
'nombre de usuario' => env ('DB_USERNAME', 'lar'),
]
forjar aquí significa valores predeterminados. Esto significa que estos valores se utilizarán en caso de que no haya proporcionado su DB_DATABASE y DB_USERNAME valores dentro de tu .archivo env. Esta información será útil en un momento.
Ahora, cómo sabe que tiene este problema específico es si se encuentra con la siguiente excepción:
PDOException: SQLSTATE [HY000] [1045] Acceso denegado para el usuario 'lar' @ 'localhost'(usando contraseña: NO)
Esto muestra claramente que su aplicación Laravel está obteniendo el valor predeterminado de su config / database.php archivo y no de su .env .
Antes de hacer cualquier otra cosa, también puede intentar verificar este problema usando php artisan tinker también:
>>> env ('DB_DATABASE')=> nulo
>>> getenv ('DB_DATABASE')
=> falso
>>> config ('base de datos.conexiones.mysql.base de datos')
=> "Lar"
>>> dd ($ _ ENV)
[]
A menudo verá que hacer lo siguiente tampoco marcará la diferencia. Sin embargo, los desarrolladores intentan probar su configuración ejecutando una instalación de Laravel completamente nueva y simplemente copiando la carpeta de la aplicación anterior. No ejecutan ninguna instalación de paquetes de compositor ni hacen nada más.
A menos que esté en Linux (le diré por qué un poco más adelante), no verá ningún cambio.
Solución
Como siempre, hay muchas cosas que puede hacer para intentar resolver este problema, pero es más probable que algunas de ellas tengan éxito.
Limpia tu caché de configuración
En primer lugar, si no lo ha hecho, debe borrar su caché de configuración antes de poder hacer cualquier otra cosa.
Debido a que nuestro código usa tantas bibliotecas hoy en día, nos vemos obligados a almacenar en caché las cosas para acceder rápidamente a ellas durante el tiempo de ejecución.
Personalmente tuve problemas con esto en Windows y Mac, sin embargo, noté que por alguna razón, en Linux (Ubuntu) estos archivos de configuración se borran con algún tipo de gancho o no se almacenan en caché, porque pude recarga la aplicación con nueva .valores env sin hacer lo siguiente.
Asegúrese de borrar su caché de configuración ejecutando los siguientes comandos:
php artisan config: cachéphp artisan config: claro
Compruebe si hay espacios vacíos dentro de su .archivo env
La siguiente solución es tener espacios en blanco dentro de su .archivo env. Y este es donde la mayoría de la gente falla y comienza a rasgarse el pelo.
Es muy fácil pasar por alto esto, pero como ejemplo, lo que podría tener en su .env archivo es algo como esto:
SITE_NAME = Mi aplicación LaravelEsto por sí solo no funcionará ya que los espacios en blanco corromperán el .archivo env.
Lo que debe hacer es envolver sus valores dentro de las comillas de esta manera:
SITE_NAME = "Mi aplicación Laravel"Esta vez todo debería funcionar bien.
Solo asegúrese de borrar su caché de configuración cada vez que realice un cambio. Podemos hacer esto de la misma manera que antes:
php artisan config: cachéphp artisan config: claro