Rumah >rangka kerja php >Laravel >Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengendalikan Pengecualian dan Ralat Kebenaran
Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengendalikan Pengecualian dan Ralat Kebenaran
Pengenalan: #🎜🎜 hebat rangka kerja pembangunan menyediakan satu siri fungsi kawalan kebenaran untuk membantu kami mengurus peranan dan kebenaran pengguna dengan mudah. Walau bagaimanapun, dalam proses pembangunan sebenar, kami sering menghadapi pengecualian kebenaran dan ralat. Artikel ini menerangkan beberapa amalan terbaik untuk mengendalikan pengecualian dan ralat kebenaran serta menyediakan contoh kod khusus.
Dalam Laravel, kami boleh menggunakan mekanisme pengendalian pengecualian untuk menangkap dan mengendalikan pengecualian berkaitan kebenaran. Apabila mengendalikan pengecualian kebenaran, kami boleh menyesuaikan kelas pengecualian dan mendaftarkannya untuk menangkap pengecualian kebenaran tertentu.
<?php namespace AppExceptions; use Exception; class PermissionException extends Exception { /** * Render the exception as an HTTP response. * * @param IlluminateHttpRequest $request * @return IlluminateHttpResponse */ public function render($request) { return response()->json(['message' => 'Permission denied'], 403); } }
use AppExceptionsPermissionException;
<?php namespace AppHttpMiddleware; use Closure; use AppExceptionsPermissionException; class CheckAdmin { public function handle($request, Closure $next) { if (! $request->user()->isAdmin()) { throw new PermissionException(); } return $next($request); } }
Apabila bercakap tentang ralat kebenaran, kami perlu menyediakan halaman atau mesej ralat mesra untuk memberi maklum balas pengguna. Dalam Laravel, kita boleh mencapai ini melalui perisian tengah dan pengendali pengecualian tersuai.
<?php namespace AppExceptions; use Exception; use IlluminateAuthAccessAuthorizationException; use IlluminateFoundationExceptionsHandler as ExceptionHandler; class Handler extends ExceptionHandler { // ... /** * Render the exception as an HTTP response. * * @param IlluminateHttpRequest $request * @param Exception $exception * @return IlluminateHttpResponse */ public function render($request, Exception $exception) { if ($exception instanceof AuthorizationException) { return response()->view('errors.forbidden', [], 403); } return parent::render($request, $exception); } }
'exceptions' => [ // ... AppExceptionsHandler::class, ],
Laravel menyediakan beberapa ciri berkuasa untuk mengendalikan pengecualian kebenaran dan ralat. Melalui kelas pengecualian tersuai dan pengendali pengecualian, kami boleh menangkap dan mengendalikan pengecualian berkaitan kebenaran dan menyediakan halaman atau mesej ralat mesra kepada pengguna. Saya harap kandungan artikel ini dapat membantu anda mengendalikan pengecualian dan ralat kebenaran dengan lebih baik.
Atas ialah kandungan terperinci Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengendalikan Pengecualian dan Ralat Kebenaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!