Problema
Tai yra gana dažna problema, kuri atsiranda tarp naujų „Laravel“ kūrėjų.
Daugelis žmonių bandė atnaujinti savo .env failą, kad įsitikintumėte, jog atnaujinę savo programą .„env config“ vertės nerodomos.
Ir dar įdomiau yra tai, kad gana dažnai tai pasirodys atnaujinus „Laravel“ versiją.
Pavyzdžiui, jūs turėtumėte tai savo .env failas:
DB_DATABASE = laraveldbDB_USERNAME = laraveluser
Tada natūraliai, konfigūracijos / duomenų bazės viduje.php failą, kurį turėtumėte:
'mysql' => ['database' => env ('DB_DATABASE', 'lar'),
'vartotojo vardas' => env ('DB_USERNAME', 'lar'),
]
forge čia reiškia numatytąsias reikšmes. Tai reiškia, kad šios vertės bus naudojamos tuo atveju, jei nepateiksite savo DB_DATABASE ir DB_USERNAME vertybės jūsų viduje .env failas. Ši informacija bus šiek tiek naudinga.
Dabar, kai žinote, kad turite šią konkrečią problemą, yra tai, kad susidursite su šia išimtimi:
PDOIšimtis: SQLSTATE [HY000] [1045] Vartotojui „lar“ @ „localhost“ prieiga uždrausta(naudojant slaptažodį: NE)
Tai aiškiai parodo, kad jūsų „Laravel“ programa iš jūsų pateikia numatytąją vertę konfigūracija / duomenų bazė.php failą, o ne iš jūsų .env .
Prieš ką nors darant, taip pat galite pabandyti patikrinti šią problemą naudodami „php“ amatininkų tinklą:
>>> env ('DB_DATABASE')=> niekinis
>>> getenv ('DB_DATABASE')
=> klaidinga
>>> config ('duomenų bazė.jungtys.mysql.duomenų bazė ')
=> „Lar“
>>> dd ($ _ ENV)
[]
Dažnai pastebėsite, kad atlikus šį dalyką taip pat nebus jokio skirtumo. Tačiau kūrėjai bando išbandyti savo konfigūraciją paleisdami visiškai naują „Laravel“ diegimą ir tiesiog nukopijuodami seną programų aplanką. Jie neveikia jokių kompozitorių paketų diegimo ir nieko kito nedaro.
Nematysite jokių pakeitimų, nebent naudojate „Linux“ (kiek vėliau pasakysiu kodėl).
Sprendimas
Kaip visada, galite daug ką padaryti, kad pabandytumėte išspręsti šią problemą, tačiau tikėtina, kad keli iš jų pavyks.
Išvalykite konfigūracijos talpyklą
Pirmiausia, jei to nepadarėte, prieš atlikdami bet ką kitą, turite išvalyti konfigūracijos talpyklą.
Kadangi šiuo metu mūsų kodas naudoja tiek daug bibliotekų, esame priversti saugoti daiktus, kad per juos vykdytume greitai prieigą prie jų.
Aš asmeniškai turėjau problemų dėl to „Windows“ ir „Mac“, tačiau pastebėjau, kad dėl kažkokių priežasčių „Linux“ („Ubuntu“) šie konfigūracijos failai yra arba išvalomi su kažkokiu kabliu, arba jie iš viso nėra talpinami, nes aš galėjau perkraukite programą nauja .„env“ vertės neatliekant šių veiksmų.
Įsitikinkite, kad išvalėte konfigūracijos talpyklą, vykdydami šias komandas:
php amatininkų konfigūracija: talpyklaphp amatininko konfigūracija: aišku
Patikrinkite, ar jūsų vietoje nėra tuščių vietų .env failas
Kitas sprendimas yra tas, kad jūsų viduje yra tarpų .env failas. Ir šitas, jei daugumai žmonių nepavyksta ir jie pradeda plėšti plaukus.
Tai labai lengva praleisti, bet kaip pavyzdį, ką galėtumėte turėti savo .„env“ failas yra maždaug toks:
SITE_NAME = Mano programa „Laravel“Vien tai neveiks, nes tarpai sugadins .env failas.
Ką turite padaryti, tai apvyniokite savo vertes tokiose kabutėse:
SITE_NAME = „Mano„ Laravel “programa“Šį kartą viskas turėtų veikti puikiai.
Tiesiog būtinai išvalykite konfigūracijos talpyklą kiekvieną kartą, kai atliksite pakeitimus. Tai galime padaryti taip pat, kaip ir anksčiau:
php amatininkų konfigūracija: talpyklaphp amatininko konfigūracija: aišku