Masalah
Ini jika masalah yang agak biasa muncul di kalangan pembangun Laravel baru.
Banyak orang telah berusaha untuk mengemas kini mereka .env file hanya untuk melihat bahawa apabila mereka menyegarkan aplikasinya, .nilai konfigurasi env tidak muncul.
Dan yang lebih menarik ialah, ini akan muncul selepas anda meningkatkan versi Laravel anda.
Jadi sebagai contoh, anda akan mempunyai ini di dalam .fail env:
DB_DATABASE = laraveldbDB_USERNAME = laraveluser
Maka secara semula jadi, di dalam konfigurasi / pangkalan data.fail php anda mempunyai ini:
'mysql' => ['pangkalan data' => env ('DB_DATABASE', 'lar'),
'username' => env ('DB_USERNAME', 'lar'),
]
menempa di sini bermaksud nilai lalai. Ini bermaksud bahawa nilai-nilai ini akan digunakan sekiranya anda belum memberikannya DB_DATABASE dan DB_USERNAME nilai dalam diri anda .fail env. Maklumat ini sedikit sebanyak akan membantu.
Sekarang, bagaimana anda tahu bahawa anda menghadapi masalah khusus ini adalah jika anda mengalami pengecualian berikut:
PDOException: SQLSTATE [HY000] [1045] Akses ditolak untuk pengguna 'lar' @ 'localhost'(menggunakan kata laluan: TIDAK)
Ini jelas menunjukkan bahawa aplikasi Laravel anda memperoleh nilai lalai dari anda config / pangkalan data.php fail dan bukan dari anda .env .
Sebelum melakukan perkara lain, anda juga boleh cuba mengesahkan masalah ini dengan menggunakan php artisan tinker juga:
>>> env ('DB_DATABASE')=> batal
>>> getenv ('DB_DATABASE')
=> palsu
>>> config ('pangkalan data.sambungan.mysql.pangkalan data')
=> "Lar"
>>> dd ($ _ ENV)
[]
Anda akan sering melihat bahawa melakukan perkara berikut tidak akan memberi perbezaan. Walau bagaimanapun, pembangun cuba menguji konfigurasi mereka dengan menjalankan pemasangan Laravel yang sama sekali baru dan hanya menyalin folder aplikasi lama. Mereka tidak menjalankan pemasangan pakej komposer atau melakukan perkara lain.
Kecuali anda menggunakan Linux (saya akan memberitahu anda mengapa sedikit kemudian), anda tidak akan melihat perubahan.
Penyelesaian
Seperti biasa, terdapat banyak perkara yang boleh anda lakukan untuk menyelesaikan masalah ini tetapi sebilangan besar kemungkinan akan berjaya.
Kosongkan cache konfigurasi anda
Pertama, jika belum, anda mesti mengosongkan cache konfigurasi anda sebelum dapat melakukan perkara lain.
Oleh kerana kod kami menggunakan begitu banyak perpustakaan pada masa ini, kami terpaksa menyimpan cache untuk membuat akses cepat ke dalamnya semasa waktu proses.
Saya secara peribadi mempunyai masalah dengan ini pada Windows dan Mac, namun, saya perhatikan bahawa untuk beberapa sebab, di Linux (Ubuntu) fail konfigurasi ini dibersihkan dengan semacam cangkuk atau mereka tidak dicache sama sekali, kerana saya dapat muat semula aplikasi dengan baru .nilai env tanpa melakukan perkara berikut.
Pastikan anda membersihkan cache konfigurasi dengan menjalankan perintah berikut:
php artisan config: cachephp artisan config: jelas
Periksa tempat kosong di dalam anda .fail env
Penyelesaian seterusnya adalah dari segi ruang kosong di dalam anda .fail env. Dan ini jika kebanyakan orang gagal dan mula merobek rambut mereka.
Sangat mudah untuk melewatkan ini tetapi sebagai contoh apa yang dapat anda miliki dalam anda .fail env adalah seperti ini:
SITE_NAME = Aplikasi Laravel SayaIni sahaja tidak akan berfungsi kerana ruang putih akan merosakkan .fail env.
Apa yang perlu anda lakukan ialah memasukkan nilai anda ke dalam tanda kutip seperti ini:
SITE_NAME = "Aplikasi Laravel Saya"Kali ini semuanya mesti berjalan lancar.
Pastikan anda membersihkan cache konfigurasi anda setiap kali anda membuat perubahan. Kita boleh melakukan ini sama seperti sebelumnya:
php artisan config: cachephp artisan config: jelas