Masalah
Yang ini jika masalah yang cukup umum yang muncul di antara pengembang Laravel baru.
Banyak orang telah mencoba untuk memperbarui mereka .env hanya untuk melihat bahwa ketika mereka me-refresh aplikasi mereka, .nilai konfigurasi env tidak muncul.
Dan yang lebih menarik adalah bahwa cukup sering, ini akan muncul setelah Anda mengupgrade versi Laravel Anda.
Jadi misalnya, Anda akan memiliki ini di .file env:
DB_DATABASE=laraveldbDB_USERNAME=pengguna laravel
Kemudian secara alami, di dalam config/database.php Anda akan memiliki ini:
'mysql' => ['database' => env('DB_DATABASE', 'lar'),
'nama pengguna' => env('DB_USERNAME', 'lar'),
]
menempa di sini adalah singkatan dari nilai default. Ini berarti bahwa nilai-nilai ini akan digunakan jika Anda belum memberikan DB_DATABASE dan DB_USERNAME nilai-nilai di dalam diri Anda .file env. Informasi ini akan sedikit membantu.
Sekarang, bagaimana Anda tahu bahwa Anda memiliki masalah khusus ini adalah jika Anda mengalami pengecualian berikut:
PDOException: SQLSTATE[HY000] [1045] Akses ditolak untuk pengguna 'lar'@'localhost'(menggunakan kata sandi: TIDAK)
Ini dengan jelas menunjukkan bahwa aplikasi Laravel Anda menarik nilai default dari . Anda konfigurasi/basis data.php file dan bukan dari Anda .env .
Sebelum melakukan hal lain, Anda juga dapat mencoba memverifikasi masalah ini menggunakan php artisan tinker juga:
>>> env('DB_DATABASE')=> nol
>>> getenv('DB_DATABASE')
=> salah
>>> config('database.koneksi.mysql.basis data')
=> "lar"
>>> dd($_ENV)
[]
Anda akan sering melihat bahwa melakukan hal berikut juga tidak akan membuat perbedaan. Namun, pengembang mencoba menguji konfigurasi mereka dengan menjalankan instalasi Laravel yang benar-benar baru dan hanya menyalin folder aplikasi lama. Mereka tidak menjalankan instalasi paket komposer atau melakukan hal lain.
Kecuali Anda menggunakan Linux (saya akan memberi tahu Anda alasannya nanti), Anda tidak akan melihat perubahan apa pun.
Larutan
Seperti biasa, ada banyak hal yang dapat Anda lakukan untuk mencoba memecahkan masalah ini, tetapi beberapa di antaranya lebih mungkin berhasil.
Hapus cache konfigurasi Anda
Pertama, jika belum, Anda harus menghapus cache konfigurasi Anda sebelum dapat melakukan hal lain.
Karena kode kami menggunakan begitu banyak perpustakaan saat ini, kami terpaksa men-cache sesuatu untuk membuat akses cepat ke sana selama runtime.
Saya pribadi memiliki masalah dengan ini di Windows dan Mac, namun, saya perhatikan bahwa untuk beberapa alasan, di Linux (Ubuntu) file konfigurasi ini dihapus dengan semacam pengait atau tidak di-cache sama sekali, karena saya bisa muat ulang aplikasi dengan yang baru .nilai env tanpa melakukan hal berikut:.
Pastikan Anda menghapus cache konfigurasi dengan menjalankan perintah berikut:
php artisan config: cachephp artisan config:clear
Periksa ruang kosong di dalam . Anda .file env
Solusi berikutnya adalah dalam hal memiliki ruang putih di dalam . Anda .file env. Dan yang ini jika kebanyakan orang gagal dan mulai merobek rambut mereka.
Sangat mudah untuk melewatkan ini tetapi sebagai contoh apa yang bisa Anda miliki di in .env file adalah sesuatu seperti ini:
SITE_NAME=Aplikasi Laravel SayaIni saja tidak akan berfungsi karena spasi putih akan merusak .file env.
Yang perlu Anda lakukan adalah membungkus nilai Anda di dalam tanda kutip seperti ini:
SITE_NAME=”Aplikasi Laravel Saya”Kali ini semuanya harus bekerja dengan baik.
Pastikan untuk menghapus cache konfigurasi Anda setiap kali Anda melakukan perubahan. Kita bisa melakukan ini sama seperti sebelumnya:
php artisan config: cachephp artisan config:clear