Probleem
See on üsna levinud probleem, mis ilmub uute Laraveli arendajate seas.
Paljud inimesed on proovinud neid värskendada .env-fail lihtsalt selleks, et näha, et kui nad oma rakendust värskendavad, .env konfiguratsiooniväärtusi ei kuvata.
Ja huvitavam on see, et üsna sageli ilmneb see pärast Laraveli versiooni täiendamist.
Nii et näiteks oleks see teil oma .env-fail:
DB_DATABASE = laraveldbDB_USERNAME = laraveluser
Siis loomulikult konfiguratsiooni / andmebaasi sees.php-fail, mis teil oleks:
'mysql' => ['andmebaas' => env ('DB_DATABASE', 'lar'),
'kasutajanimi' => env ('DB_USERNAME', 'lar'),
]
forge tähistab siin vaikeväärtusi. See tähendab, et neid väärtusi kasutatakse juhul, kui te pole oma väärtust sisestanud DB_DATABASE ja DB_USERNAME väärtused teie sees .env-fail. See teave on natuke kasulik.
Nüüd saate teada, et teil on see konkreetne probleem, kui teil tekib järgmine erand:
PDOException: SQLSTATE [HY000] [1045] Juurdepääs keelatud kasutajale 'lar' @ 'localhost'(kasutades parooli: EI)
See näitab selgelt, et teie Laraveli rakendus tõmbab teie vaikeväärtust config / andmebaas.php faili ja mitte teie .env .
Enne midagi muud võite proovida seda probleemi kontrollida ka php-käsitööliste abil:
>>> env ('DB_DATABASE')=> null
>>> getenv ('DB_DATABASE')
=> vale
>>> config ('andmebaas.ühendused.mysql.andmebaas ')
=> "Lar"
>>> dd ($ _ ENV)
[]
Sageli näete, et järgmise asja tegemine ei muuda ka midagi. Arendajad proovivad siiski oma konfiguratsiooni testida, käivitades täiesti uue Laraveli installi ja kopeerides lihtsalt vana rakenduste kausta. Nad ei käivita ühtegi helilooja pakettide installimist ega tee midagi muud.
Kui te ei kasuta Linuxi (ma ütlen teile selle natuke hiljem), ei näe te muudatusi.
Lahendus
Nagu alati, saate selle probleemi lahendamiseks teha palju asju, kuid mõned neist õnnestuvad tõenäolisemalt.
Tühjendage oma konfiguratsiooni vahemälu
Esiteks, kui te pole seda teinud, peate enne midagi muud tegema oma konfiguratsiooni vahemälu tühjendama.
Kuna meie kood kasutab tänapäeval nii palju raamatukogusid, oleme sunnitud asju vahemällu salvestama, et neile oleks kiire käitamine.
Mul oli sellega Windowsis ja Macis isiklikult probleeme, kuid märkasin, et mingil põhjusel Linuxis (Ubuntu) kustutatakse need konfiguratsioonifailid kas mingisuguse konksuga või neid ei salvestata üldse vahemällu, sest suutsin laadige rakendus uuesti uuega .env väärtused ilma järgmist tegemata.
Tühjendage kindlasti oma konfiguratsiooni vahemälu, käivitades järgmised käsud:
php käsitööliste config: vahemäluphp käsitööliste konfiguratsioon: selge
Kontrollige oma ruumi tühje kohti .env-fail
Järgmine lahendus seisneb selles, et teie sees on tühikud ruumid .env-fail. Ja see, kui enamik inimesi ebaõnnestub ja hakkavad oma juukseid kiskuma.
Sellest on väga lihtne mööda vaadata, kuid näiteks, mis teil võiks olla .env-fail on umbes selline:
SITE_NAME = Minu Laraveli rakendusAinuüksi see ei toimi, kuna tühikud ruumid rikuvad .env-fail.
Mida peate tegema, on pakkida oma väärtused jutumärkidesse selliselt:
SITE_NAME = "Minu Laraveli rakendus"Seekord peaks kõik hästi toimima.
Iga kord, kui muudate, tühjendage kindlasti oma konfiguratsiooni vahemälu. Saame seda teha samamoodi nagu varem:
php käsitööliste config: vahemäluphp käsitööliste konfiguratsioon: selge