Problema
Este é um problema bastante comum que aparece entre os novos desenvolvedores do Laravel.
Muitas pessoas têm tentado atualizar seus .env arquivo apenas para ver se, quando eles atualizam seu aplicativo, o .valores de configuração de env não estão aparecendo.
E o que é mais interessante é que, muitas vezes, isso aparecerá depois que você atualizar sua versão do Laravel.
Então, por exemplo, você teria isso em seu .arquivo env:
DB_DATABASE = laraveldbDB_USERNAME = laraveluser
Então, naturalmente, dentro do config / banco de dados.arquivo php você teria este:
'mysql' => ['banco de dados' => env ('DB_DATABASE', 'lar'),
'username' => env ('DB_USERNAME', 'lar'),
]
forge aqui representa os valores padrão. Isso significa que esses valores serão usados caso você não tenha fornecido seu DB_DATABASE e DB_USERNAME valores dentro do seu .arquivo env. Esta informação será útil em breve.
Agora, como você sabe que tem esse problema específico é se encontrar a seguinte exceção:
PDOException: SQLSTATE [HY000] [1045] Acesso negado para o usuário 'lar' @ 'localhost'(usando senha: NÃO)
Isso mostra claramente que seu aplicativo Laravel está puxando o valor padrão de seu config / banco de dados.php arquivo e não do seu .env .
Antes de fazer qualquer outra coisa, você também pode tentar verificar esse problema usando também o php artisan tinker:
>>> env ('DB_DATABASE')=> nulo
>>> getenv ('DB_DATABASE')
=> falso
>>> config ('banco de dados.conexões.mysql.base de dados')
=> “Lar”
>>> dd ($ _ ENV)
[]
Você verá frequentemente que fazer o seguinte também não fará diferença. No entanto, os desenvolvedores tentam testar sua configuração executando uma instalação completamente nova do Laravel e apenas copiando a pasta do aplicativo antigo. Eles não executam nenhuma instalação de pacote composer ou fazem qualquer outra coisa.
A menos que você esteja no Linux (contarei o porquê mais tarde), você não verá nenhuma mudança.
Solução
Como sempre, há muitas coisas que você pode fazer para tentar resolver esse problema, mas algumas delas têm maior probabilidade de sucesso.
Limpe o seu cache de configuração
Em primeiro lugar, se ainda não o fez, você deve limpar o cache de configuração antes de fazer qualquer outra coisa.
Como nosso código está usando muitas bibliotecas hoje em dia, somos forçados a armazenar em cache as coisas para fazer um acesso rápido a elas durante o tempo de execução.
Eu pessoalmente tive problemas com isso no Windows e no Mac, no entanto, notei que por algum motivo, no Linux (Ubuntu) esses arquivos de configuração ou são limpos com algum tipo de gancho ou não estão sendo armazenados em cache, porque fui capaz de recarregue o aplicativo com novo .valores env sem fazer o seguinte.
Certifique-se de limpar o cache de configuração executando os seguintes comandos:
php artisan config: cachephp artisan config: clear
Verifique se há espaços vazios em seu .arquivo env
A próxima solução é ter espaços em branco dentro de seu .arquivo env. E este é onde a maioria das pessoas falha e começa a rasgar o cabelo.
É muito fácil perder isso, mas como exemplo o que você poderia ter em seu .O arquivo env é algo assim:
SITE_NAME = Meu aplicativo LaravelIsso por si só não funcionará, pois os espaços em branco irão corromper o .arquivo env.
O que você precisa fazer é envolver seus valores entre aspas, assim:
SITE_NAME = ”Meu aplicativo Laravel”Desta vez, tudo deve funcionar bem.
Apenas certifique-se de limpar o cache de configuração sempre que fizer uma alteração. Podemos fazer isso da mesma forma que antes:
php artisan config: cachephp artisan config: clear