Si Laravel ay hindi nagbabasa ng .env file pagkatapos ng pagbabago

Laravel Is Not Reading



Problema

Ang isang ito kung isang karaniwang isyu na lilitaw kasama ng mga bagong developer ng Laravel.

Maraming tao ang sumusubok na i-update ang kanilang .env file upang makita lamang na kapag na-refresh nila ang kanilang aplikasyon, hindi nagpapakita ang mga halaga ng .env config.







At kung ano ang mas kawili-wili ay madalas, lilitaw ito pagkatapos mong i-upgrade ang iyong bersyon ng Laravel.



Kaya halimbawa, magkakaroon ka nito sa iyong .env file:



DB_DATABASE=laraveldb
DB_USERNAME=laraveluser

Pagkatapos natural, sa loob ng config / database.php file magkakaroon ka nito:





'MySQL'=> [
' database '=>env(‘DB_DATABASE’,'hita'),
'Username'=>env('DB_USERNAME','hita'),
]

pekein dito ay nangangahulugang default na mga halaga. Nangangahulugan ito na gagamitin ang mga halagang ito sakaling hindi mo naibigay ang iyong DB_DATABASE at DB_USERNAME mga halaga sa loob ng iyong .env file. Ang impormasyong ito ay makakatulong nang kaunti.

Ngayon, kung paano mo malalaman na nakuha mo ang tukoy na problemang ito ay kung nasagasaan mo ang sumusunod na pagbubukod:



PDOException: SQLSTATE[HY000] [1045]Tinanggihan ang pag-access para sa gumagamit 'Lar' @ 'localhost'
( gamit password : HINDI )

Malinaw na ipinapakita nito na ang iyong aplikasyon ng Laravel ay kumukuha ng default na halaga mula sa iyo config / database.php file at hindi mula sa iyong .env.

Bago gumawa ng anupaman, maaari mo ring subukang i-verify ang isyung ito gamit angphp artisan tinker din:

>>>env(‘DB_DATABASE’)
=> wala
>>>getenv(‘DB_DATABASE’)
=> hindi totoo
>>>config(' database .kakonekta.mysql. database ')
=>hita
>>>DD($ _ENV)
[]

Madalas mong makita na ang paggawa ng sumusunod na bagay ay hindi rin magkakaroon ng pagkakaiba. Gayunpaman, sinusubukan ng mga developer na subukan ang kanilang pagsasaayos sa pamamagitan ng pagpapatakbo ng isang ganap na bagong pag-install ng Laravel at pagkopya lamang sa dating folder ng app. Hindi sila nagpapatakbo ng anumang mga pag-install ng package ng kompositor o gumawa ng anupaman.

Maliban kung nasa Linux ka (sasabihin ko sa iyo kung bakit medyo mamaya), hindi ka makakakita ng anumang mga pagbabago.

Solusyon

Tulad ng dati, maraming mga bagay na maaari mong gawin upang subukang malutas ang problemang ito ngunit ang ilan sa mga ito ay mas malamang na magtagumpay.

I-clear ang iyong config cache

Una, kung wala ka, dapat mong i-clear ang iyong config cache bago mo magawa ang iba pa.

Dahil ang aming code ay gumagamit ng napakaraming aklatan ngayon, pinipilit kaming mag-cache ng mga bagay upang mabilis na ma-access ang mga ito sa panahon ng runtime.

Personal akong nagkaroon ng mga isyu dito sa Windows at Mac, gayunpaman, napansin ko na sa ilang kadahilanan, sa Linux (Ubuntu) ang mga config file na ito ay maaaring na-clear sa isang uri ng kawit o hindi sila nai-cache, dahil nagawa kong i-reload ang application gamit ang mga bagong halagang .env nang hindi ginagawa ang sumusunod.

Tiyaking na-clear mo ang iyong config cache sa pamamagitan ng pagpapatakbo ng mga sumusunod na utos:

php artisan config:cache
php artisan config:malinaw

Suriin ang walang laman na mga puwang sa loob ng iyong .env file

Ang susunod na solusyon ay tungkol sa pagkakaroon ng mga puting puwang sa loob ng iyong .env file. At ang isang ito kung saan nabigo ang karamihan sa mga tao at nagsisimulang gupitin ang kanilang buhok.

Napakadali na makaligtaan ito ngunit bilang isang halimbawa kung ano ang maaaring mayroon ka sa iyong .env file ay tulad nito:

SITE_NAME=Ang Aking Laravel Application

Mag-iisa ito ay hindi gagana dahil ang mga puting puwang ay masisira sa .env file.

Ang kailangan mong gawin ay ibalot ang iyong mga halaga sa loob ng mga quote na tulad nito:

SITE_NAME=Ang Aking Laravel Application

Sa oras na ito ang lahat ay dapat gumana nang maayos.

Siguraduhin lamang na i-clear ang iyong config cache sa tuwing gumawa ka ng pagbabago. Maaari nating gawin ito katulad ng dati:

php artisan config:cache
php artisan config:malinaw