2016-11-04 5 views
0

laravel 5.3을 사용하여 사용자 지정 오류를 처리하려고하지만 중단 (404)을 올바르게 catch하지 못하는 것 같습니다.Laravel 5.3 abort()에서 오류 처리

내 경로 (web.php)에 중단을 넣으면 404 페이지가 나타납니다. 내가 블레이드의 중단을 넣으면

, 나는 NotFoundHttpException 메시지가,하지만 내 대체 오류 상태 기본값하는 500

응용 프로그램/예외/기능 렌더링 handler.php :

// 404 page when a model is not found 
    if ($exception instanceof ModelNotFoundException or $exception instanceof NotFoundHttpException) { 
     return response()->view('errors.404', $requestAndException, 404); 
    } 

    if ($this->isHttpException($exception)) { 
     //return $this->renderHttpException($exception); 
     // mirrored code from renderHttpException to allow for exception-less errors in non-dev mode 
     $status = $exception->getStatusCode(); 

     if (view()->exists("errors.{$status}")) { 
      return response()->view("errors.{$status}", $requestAndException, $status, $exception->getHeaders()); 
     } else { 
      return $this->convertExceptionToResponse($exception); 
     } 
    } else { 
     // Custom error 500 view on production 
     return response()->view('errors.500', $requestAndException, 500); 
    } 

특정 예외가있는 사용 섹션을 업데이트하려고 시도했지만 차이가없는 것 같습니다.

use Exception; 
use Illuminate\Auth\AuthenticationException; 
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; 

어떤 아이디어 : 현재에 앉아?

답변

0

보기 폴더에서 "errors"라는 폴더를 만든 다음 그 안에 예를 들어 404.blade.php, 500.blade.php의 예외에 대한 사용자 지정보기를 만듭니다. 보기의 이름과 동일한 상태로 중단하면 Laravel에서 처리하므로 라우트에 넣을 필요가 없습니다.

+0

나는 그것을 가지고있다. 작동하지 않습니다. 내가보기 안쪽에서 중단을 호출 할 때. "내 경로 (web.php)에 중단을 넣으면 404 페이지가 나타납니다. 블레이드에 중단을 넣으면 NotFoundHttpException 메시지가 표시되지만 기본값은 폴백 오류 조건 인 500이됩니다. " –

+0

경로에 배치 할 필요는 없으며 오류 폴더에 정확한 이름으로보기를 작성하면 laravel이 모든 것을 처리합니다. –

+0

컨트롤러 또는 미들웨어에 중단을 지정합니다. –