/app/Config/Routes.php
1 2 3 4 5 | $routes ->set404Override( function ( $message =null){ $response = service( 'response' ); $response ->setStatusCode(404); echo view( 'errors/html/http404' , [ 'message' => $message ]); }); |
ci4 공식문서의 예제로 404페이지를 오버라이드 할 경우 HTTP 헤더에 200으로 떨어지는 문제가 있어 위와 같이 처리가 가능하다.
또는 에러를 전반적으로 처리하는 컨트롤러가 있다면
1 2 3 4 5 | $routes ->set404Override( function ( $message =null) { $errors = new \App\Controllers\Errors; $errors ->error404( $message ); } |
위와 같이 처리가 가능하다. $this->response는 바로 사용할수 없기 때문에 service 함수로 객체를 생성해서 사용하면 된다.