Hi,
I have a route.php
file that contains the following defintions towards the bottom:
$router->notFound( [ "controller" => "Index", "action" => "index" ]);
return $router;
which essentially call the IndexController::indexAction
when the provided path is not matched by any other route. This specific action returns status 200 OK
and some dummy json content.
public function indexAction() {
$response = new Response();
$response->setStatusCode(200);
$response->setJsonContent( ["data" => "Invalid route."] );
$response->setContentType("application/json");
return $response;
}
However, sometimes one of my other routes needs to return status 404 Not found
. What I have in those action methods is something like this:
$response = new Response();
$response->setStatusCode(404);
return $response;
The side effect of this is that the routing table continues to be processed and ends up in the default route, so my dummy json then gets displayed, albeit with the correct 404 Not Found
status.
Can someone tell me how to completly control the output from the initial controller where the 404 Not Found
is initially set?