/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 함수로 객체를 생성해서 사용하면 된다.