Laravel 中的異常處理器和HTTP異常處理例項教程
阿新 • • 發佈:2019-02-20
Laravel應用中所有的異常都通過 App\Exceptions\Handler
進行處理,下面我們先簡單分析下給異常處理器類的屬性和方法:
$dontReport屬性
protected $dontReport = [
HttpException::class,
ModelNotFoundException::class,
TokenMismatchException::class, //引入totken類
];
render方法
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e) { //TODO 這裡一條自定義http錯誤自動跳轉到首頁 if (getenv('APP_ENV') == 'production' && $e instanceof HttpException) { Log::error($e); return Redirect::to('admin/dashboard'); } if (getenv('APP_ENV') == 'production' && $e instanceof TokenMismatchException) { Log::error($e); if ($request->ajax()) { return Response::json( [ 'status' => 'failed', 'error' => [ 'status_code' => 401, 'message' => '操作未完成,系統載入失敗,重新登入或者重新整理當前頁面!' ] ] ); } return Redirect::to('admin/logout'); } return parent::render($request, $e); }