Apabila anda membangunkan menggunakan Laravel, anda mungkin menghadapi beberapa mesej ralat. Mesej ralat ini mungkin membuat anda keliru, tetapi anda tidak tahu dari mana untuk bermula.
Artikel ini akan mengajar anda cara membuka gesaan ralat Laravel dan cara mencari serta menyelesaikan masalah melalui gesaan ralat.
Hidupkan gesaan ralat dalam Laravel
Secara lalai, Laravel mematikan gesaan ralat dalam persekitaran pengeluaran. Ini adalah atas sebab keselamatan untuk menghalang penyerang daripada mendapatkan maklumat sensitif melalui gesaan ralat.
Tetapi semasa proses pembangunan, anda perlu menghidupkan gesaan ralat untuk mencari dan menyelesaikan masalah tepat pada masanya.
Untuk membuka mesej ralat Laravel, anda boleh mengikuti langkah di bawah:
.env
dalam direktori projek Laravel dan cari baris APP_ENV
. APP_ENV=
daripada production
kepada local
dan simpan fail. Laksanakan arahan berikut:
php artisan config:cache
Kini, apabila anda mengakses Laravel dalam persekitaran pembangunan, anda akan melihat mesej ralat terperinci.
Mentafsir gesaan ralat Laravel
Apabila anda menghadapi ralat dalam Laravel, anda akan menerima gesaan ralat yang serupa dengan yang berikut:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'where clause' (SQL: select * from `users` where `name` = test)
Gesaan ralat ini memberitahu kami Terdapat ralat dalam pertanyaan SQL ini Secara khusus, medan name
tidak wujud. Mesej ralat ini memberikan kami tiga maklumat penting:
Selain ralat pertanyaan SQL, Laravel juga menyediakan jenis gesaan ralat lain, seperti ralat PHP (seperti pembolehubah tidak ditentukan atau fungsi tidak wujud), ralat sintaks templat, dsb.
Seterusnya, saya akan menunjukkan kepada anda beberapa jenis ralat Laravel biasa satu demi satu dan memberikan penyelesaian.
Ralat pertanyaan SQL
Ralat pertanyaan SQL ialah salah satu jenis ralat yang paling biasa dalam aplikasi Laravel. Berikut ialah beberapa contoh ralat dan penyelesaian pertanyaan SQL:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'name' in 'where clause' (SQL: select * from `users` where `name` = test)
Mesej ralat ini memberitahu kami bahawa medan name
tidak wujud. Jika kita mengesan pertanyaan SQL, kita melihat bahawa medan username
harus digunakan dan bukannya medan name
.
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.userss' doesn't exist (SQL: select * from `userss` where `email` = test@example.com)
Mesej ralat ini memberitahu kami bahawa jadual userss
tidak wujud. Kita perlu menyemak dan mengesahkan bahawa nama jadual dieja dengan betul.
Ralat PHP
Selain daripada ralat pertanyaan SQL, kadangkala anda juga akan menghadapi jenis ralat lain seperti ralat PHP, dsb. Berikut ialah beberapa contoh ralat PHP biasa dan penyelesaiannya:
Undefined variable: user (View: /var/www/resources/views/users/show.blade.php)
Mesej ralat ini memberitahu kami bahawa pembolehubah $user
tidak ditentukan. Kita perlu menyemak dan mengesahkan sama ada pembolehubah ditakrifkan dengan betul atau dimulakan dengan betul sebelum menggunakannya.
Call to undefined function AppHttpControllersHomeControlleroo()
Mesej ralat ini memberitahu kami bahawa fungsi HomeController
dalam foo()
tidak wujud. Kita perlu menyemak dan mengesahkan bahawa fungsi ditakrifkan dengan betul atau ia diperkenalkan dengan betul sebelum memanggil fungsi tersebut.
Ralat sintaks templat
Apabila menggunakan templat paparan Laravel, anda mungkin menghadapi ralat sintaks templat. Berikut ialah beberapa contoh ralat sintaks templat biasa dan penyelesaiannya:
syntax error, unexpected ')', expecting variable (T_VARIABLE) or '{' or '$'
Mesej ralat ini memberitahu kami bahawa terdapat ralat sintaks dalam kod, kebanyakannya berkemungkinan kurungan Tidak sepadan. Kami perlu menyemak dan mengesahkan bahawa semua kurungan sepadan dengan betul.
Undefined variable: user (View: /var/www/resources/views/users/show.blade.php)
Mesej ralat ini memberitahu kami bahawa pembolehubah $user
tidak ditentukan. Kita perlu menyemak dan mengesahkan bahawa pembolehubah ditakrifkan dengan betul dan dimulakan dengan betul sebelum menggunakannya.
Kesimpulan
Menggunakan gesaan ralat dalam Laravel boleh membantu anda mencari dan menyelesaikan masalah tepat pada masanya. Dengan mentafsir mesej ralat dengan betul, kami boleh mencari masalah dan mengambil penyelesaian yang sesuai.
Semasa pembangunan dan fasa ujian, anda harus menetapkan .env
dalam fail APP_ENV
Laravel kepada local
untuk menghidupkan gesaan ralat supaya ralat boleh ditemui dengan lebih mudah. Tetapi dalam persekitaran pengeluaran, anda harus menetapkan APP_ENV
kepada production
untuk mematikan gesaan ralat bagi mengelakkan maklumat sensitif bocor.
Saya harap artikel ini dapat membantu anda memahami dengan lebih baik gesaan ralat dalam Laravel dan berjaya menyelesaikan pembangunan projek.
Atas ialah kandungan terperinci laravel membuka mesej ralat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!