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