Problem
Ten, jeśli jest to dość powszechny problem, który pojawia się wśród nowych programistów Laravel.
Wiele osób próbowało je zaktualizować .plik env, aby zobaczyć, że po odświeżeniu aplikacji, .Wartości konfiguracji ENV nie pojawiają się.
A bardziej interesujące jest to, że dość często pojawi się po zaktualizowaniu wersji Laravel.
Na przykład miałbyś to w swoim .plik env:
Db_database = laraveldbNastępnie naturalnie, wewnątrz konfiguracji/bazy danych.Plik PHP miałbyś to:
„mysql” => [ku kucy tutaj oznacza wartości domyślne. Oznacza to, że wartości te będą używane na wypadek, gdybyś nie zapewnił Db_database I Db_username Wartości w twoim .plik env. Ta informacja będzie trochę pomocna.
Teraz, skąd wiesz, że masz ten konkretny problem, to, jeśli napotkasz następujący wyjątek:
PDOException: sqlstate [HY000] [1045] Dostęp odmówiono użytkownika „lar”@„localHost”To wyraźnie pokazuje, że aplikacja Laravel pobiera wartość domyślną z twojego config/baza danych.php plik, a nie z twojego .Env .
Zanim zrobisz cokolwiek innego, możesz również spróbować zweryfikować ten problem za pomocą PHP Artisan Tinker:
>>> env („db_database”)Często zobaczysz, że robienie następujących rzeczy też nie zrobi różnicy. Jednak programiści próbują przetestować swoją konfigurację, uruchamiając zupełnie nową instalację Laravel i po prostu kopiując stary folder aplikacji. Nie uruchamiają żadnych instalacji pakietu kompozytora ani nie robią nic innego.
O ile nie jesteś w Linux (powiem ci, dlaczego nieco później), nie zobaczysz żadnych zmian.
Rozwiązanie
Jak zawsze istnieje wiele rzeczy, które możesz zrobić, aby rozwiązać ten problem, ale kilka z nich jest bardziej skłonne do odniesienia sukcesu.
Wyczyść pamięć podręczną konfiguracji
Po pierwsze, jeśli tego nie zrobisz, musisz wyczyścić pamięć podręczną konfiguracyjnej, zanim możesz zrobić cokolwiek innego.
Ponieważ w dzisiejszych czasach nasz kod używa tak wielu bibliotek, jesteśmy zmuszeni do buforowania rzeczy, aby uzyskać szybki dostęp do nich w czasie wykonywania.
Osobiście miałem problemy z tym w systemie Windows i Mac, jednak zauważyłem, że z jakiegoś powodu w Linux (Ubuntu) te pliki konfiguracyjne są albo wyczyszczone za pomocą jakiegoś haczyka, albo wcale nie są buforowane, ponieważ byłem w stanie Załaduj aplikację za pomocą nowego .Wartości ENV bez następujących czynności.
Upewnij się, że wyczyściłeś pamięć podręczną konfiguracji, uruchamiając następujące polecenia:
PHP Artisan Config: CacheSprawdź puste przestrzenie w swoim .plik env
Następnym rozwiązaniem dotyczy posiadania białych przestrzeni w twoim .plik env. I ten, jeśli większość ludzi zawodzi i zaczyna rozrywać włosy.
Bardzo łatwo jest to przegapić, ale jako przykład, co możesz mieć w swoim .Plik ENV to coś takiego:
Site_name = moja aplikacja LaravelTo samo nie zadziała, ponieważ białe przestrzenie będą zepsuć .plik env.
To, co musisz zrobić, to owinąć swoje wartości w cytaty takie:
Site_name = ”Moja aplikacja Laravel”Tym razem wszystko powinno działać dobrze.
Pamiętaj tylko, aby wyczyścić pamięć podręczną konfiguracji za każdym razem, gdy dokonujesz zmiany. Możemy to zrobić tak samo jak wcześniej:
PHP Artisan Config: Cache