laravel

Laravel tidak membaca .fail env selepas perubahan

Laravel tidak membaca .fail env selepas perubahan

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 = laraveldb
DB_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: cache
php 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 Saya

Ini 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: cache
php artisan config: jelas
Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...
Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...
Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...