2017-12-09 13 views
-1

를 반환 나는 다음과 같은 컨트롤러가 :사용하여 PHP 예외는 여전히 예외 오류 페이지

<?php 

namespace App\Http\Controllers; 


use App\WebPackage; 

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 


class WebProcessController extends Controller 
{ 


    public function sendPayment(Request $request) 
    { 

     if ($request->ptitle && $request->pricetotal){ 

      try { 
       $product = WebPackage::findOrFail($request->ptitle); 
      } 
      catch (NotFoundHttpException $exception){ 
       die(); 
      } 
      return $product; 

     } 

그냥 내가 WebPackage 모델의 값이 아닌 ID로 $의 요청 -> ptitle을 보내려고합니다.

오류 예외가 표시 될 때 die() 함수가 작동해야합니다. 하지만 여전히 오류 페이지를 보여주는 '시도'와 '캐치'를 사용하는 경우

Sorry, the page you are looking for could not be found. 

2/2 
NotFoundHttpException in Handler.php line 113: 
No query results for model [App\WebPackage] 20 

는 것은 내가 한 잘못이 있습니까?

+0

findOrFail은 id와 함께 작동합니다. 당신은 어디에 조건을 사용해야합니까 –

+0

@ CavidKərimov 사용하는 것이 좋습니다, 삽입 된 값은 정수입니다 – user2873860

+0

이것은 예외가 발견되지 않습니다. Webpackage에 행이 없기 때문에 그 이유는 NotFoundException입니다. –

답변

2

문제는 잘못된 예외 유형을 잡는 것입니다. findOrFail\Illuminate\Database\Eloquent\ModelNotFoundException을 던졌습니다. 여기에 기록이없고 여기에 NotFoundHttpException을 잡으면 완전히 다른 예외입니다.

은 또한 당신은 Handler에서 예외를 처리 고려해야 아니면 그냥 사용자의 오류를 숨기려면 .env 파일에 falseAPP_DEBUG을 설정합니다.