Rumah > rangka kerja php > Laravel > lompat ralat laravel

lompat ralat laravel

王林
Lepaskan: 2023-05-26 15:33:09
asal
780 orang telah melayarinya

Sebagai pembangun Laravel, kami sering menghadapi pelbagai ralat. Ada yang disebabkan oleh ralat pengekodan, manakala yang lain disebabkan oleh input pengguna yang salah atau operasi yang tidak betul. Apabila ralat ini berlaku, mekanisme pengendalian ralat yang baik dan halaman ralat amat penting.

Artikel ini akan memperkenalkan mekanisme pengendalian ralat dalam Laravel dan cara menyesuaikan halaman ralat dan lompatan. Kami akan menggunakan Laravel 8 sebagai contoh.

Konfigurasikan pengendali ralat

Dalam Laravel, semua pengecualian akan dilemparkan kepada pengendali pengecualian. Pengendali ini bertanggungjawab untuk menentukan cara bertindak balas terhadap pengecualian ini. Laravel menyediakan kelas AppExceptionsHandler secara lalai untuk mengendalikan semua pengecualian.

Jika anda ingin menyesuaikan respons pengecualian, anda boleh mengeditnya terus dalam kelas Handler. Sebagai contoh, anda boleh menyesuaikan respons pengecualian melalui kaedah render:

public function render($request, Throwable $exception)
    {
        if ($exception instanceof ModelNotFoundException) {
            return response()->json([
                'message' => 'Record not found'
            ], 404);
        }

        return parent::render($request, $exception);
    }
Salin selepas log masuk

Kod di atas menunjukkan cara untuk bertindak balas apabila model tidak ditemui. Di sini kami menggunakan response()->json untuk mengembalikan respons ralat dalam format JSON. Jika anda ingin mengembalikan paparan, anda boleh menggunakan fungsi view() pembantu.

Halaman ralat HTTP tersuai

Selain pengendali pengecualian, kami juga perlu menyesuaikan halaman ralat HTTP. Laravel menjadikan proses ini sangat mudah. Kita hanya perlu mencipta paparan yang sepadan di bawah direktori resources/views/errors. Contohnya:

  • resources/views/errors/404.blade.php akan mengendalikan ralat HTTP 404
  • resources/views/errors/500.blade.php akan mengendalikan ralat HTTP 500

Perhatikan bahawa anda masih perlu mengkonfigurasi pandangan ini Buat pelarasan pengindahan dan penggayaan. Di sini kami hanya memberikan respons yang paling asas.

Adalah penting untuk ambil perhatian bahawa jika aplikasi anda berjalan dalam mod pengeluaran dan data sampel belum disediakan, maka anda mungkin perlu mengubah suai APP_DEBUG pembolehubah persekitaran untuk melumpuhkan mod nyahpepijat dan memastikan bahawa caching didayakan.

Ubah Hala Tersuai

Selain respons ralat tersuai, kami juga boleh menyesuaikan ubah hala dalam aplikasi. Situasi ubah hala yang paling biasa ialah apabila pengguna tidak disahkan dan kami perlu mengubah hala mereka ke halaman log masuk. Dalam Laravel, gunakan middleware untuk melindungi laluan, kaedah pengawal, dsb.

Sebagai contoh, kita boleh menggunakan auth middleware untuk melindungi laluan dashboard:

Route::get('/dashboard', function () {
    //
})->middleware(['auth']);
Salin selepas log masuk

Apabila pengguna tidak disahkan, Laravel akan mengubah hala pengguna secara automatik ke login route , yang merupakan fungsi perisian tengah kebenaran terbina dalam Laravel. Jika anda ingin menyesuaikan ubah hala anda, anda boleh menggunakan RedirectIfAuthenticated middleware, yang boleh mengubah hala pengguna ke halaman tertentu apabila mereka sudah log masuk.

Contohnya, untuk mengubah hala pengguna log masuk dari halaman /login ke /dashboard:

public function handle($request, Closure $next)
{
    if (Auth::check()) {
        return redirect('/dashboard');
    }

    return $next($request);
}
Salin selepas log masuk

Ini adalah cara untuk mengendalikan ralat dan ubah hala tersuai dalam Laravel. Halaman ralat tersuai dan ubah hala pasti boleh meningkatkan pengalaman pengguna aplikasi anda dan meningkatkan kebolehcapaian aplikasi anda. Sudah tentu, seperti yang kami katakan, apabila menghadapi ralat yang tidak diketahui, kami juga harus memberikan gesaan ralat mesra untuk membantu pengguna menentukan cara menyelesaikan masalah tersebut.

Atas ialah kandungan terperinci lompat ralat laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan