2016-06-02 5 views
1

컨트롤러보기에서 404 오류보기를 반환하고이 코드 블록을 가지고 있다고 가정합니다.laravel의 return view(), return return() -> view() 및 abort()의 차이점

try { 

     file_get_contents('http://www.somewebsite.com'); 

    } 
catch (\Exception $e) { 

     return view('errors.404'); // View::make('errors.404'); 

     // or      

     return response()->view('errors.404'); // Response::view('errors.404'); 

     // or 

     abort(404); // App::abort(404); 

    } 

때마다 404의 동일한보기 출력이 표시됩니다. 다음은 내 질문입니다.

view(), response() -> view() 및 abort()의 차이점은 무엇입니까?

이들의 특별한 사용 사례는 무엇입니까?

답변

2

view()response()->view()

response()->view() 단지 속기 상태 코드 (200)로 지정된 뷰를 돌려줍니다,하지만 당신은 여러 가지 방법으로 응답을 수정할 수 있습니다. 예를 설정 다른 헤더 또는 301

abort() 같은 다른 상태 코드에 대한 NotFoundHttpException를 throw 또는 HttpException하고 자신 만의 뷰를 지정할 필요가 없습니다 Laravel은 views/errors에서 해당 코드와 같은 이름의보기를 보이게됩니다 .

+0

하지만 모두 동일한 결과를 반환합니다. 항상 view()를 사용하면 안되는 이유는 무엇입니까? –

+0

@Prs 오류 페이지에 대해 브라우저로 보내지는 상태 코드 때문입니다. 사용자는 아니지만 검색 엔진에 필수적입니다. 당신은'abort()'를 사용할 필요는 없지만 _should_합니다. – Kovah

0

view() 또는 response() -> view()를 사용하면 클라이언트가받는 HTTP 응답 코드가 200 일 수 있습니다. abort (404)를 사용하면 코드가 404 NOT FOUND!