Laravel no está leyendo .Archivo envéano tras cambio

Laravel no está leyendo .Archivo envéano tras cambio

Problema

Este si es un problema bastante común que aparece entre los nuevos desarrolladores de Laravel.

Mucha gente ha estado tratando de actualizar su .archivo env 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 a menudo aparecerá después de actualizar su versión de Laravel.

Entonces, por ejemplo, tendrías esto en tu .archivo env:

Db_database = laraveldb
Db_username = laraveluser

Entonces, naturalmente, dentro de la base de datos de configuración.archivo php tendría esto:

'mysql' => [
'Base de datos' => env ('db_database', 'lar'),
'UserName' => env ('db_username', 'lar'),
]

Forge 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ía. 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 la contraseña: no)

Esto muestra claramente que su aplicación Laravel está obteniendo el valor predeterminado de su configuración/base de datos.php archivo y no de su .envidia .

Antes de hacer cualquier otra cosa, también puede tratar de verificar este problema usando Phpp Artisan Tinker también:

>>> env ('db_database')
=> nulo
>>> getenv ('db_database')
=> Falso
>>> config ('base de datos.conexión.mysql.base de datos')
=> "Lar"
>>> dd ($ _ env)
[]

A menudo verá que hacer lo siguiente tampoco hará 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 aplicaciones antiguas. No ejecutan ninguna instalación de paquetes compositor ni hacen nada más.

A menos que esté en Linux (le diré por qué un poco más tarde), no verá ningún cambio.

Solución

Como siempre, hay muchas cosas que puede hacer para tratar de resolver este problema, pero es más probable que algunas tengan éxito.

Borre su 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 está usando tantas bibliotecas hoy en día, nos vemos obligados a almacenar cosas para hacer que el acceso rápido 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 borra con algún tipo de gancho o no se están almacenando en cacha, porque pude Recargar la aplicación con nuevo .Valores de 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: Clear

Verifique los espacios vacíos dentro de su .archivo envía

La siguiente solución es en términos de tener espacios blancos dentro de su .archivo envía. Y este si la mayoría de las personas fallan y comienzan a rasgarse el cabello.

Es muy fácil perder esto, pero como ejemplo lo que podría tener en su .El archivo env es algo como esto:

Sitio_name = mi aplicación Laravel

Esto solo no funcionará ya que los espacios blancos corrompen el .archivo envía.

Lo que necesita hacer es envolver sus valores dentro de las citas como esta:

Sitio_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 igual que antes:

PHP Artisan Config: caché
PHP Artisan Config: Clear