diff --git a/user_guide_src/source/incoming/routing.rst b/user_guide_src/source/incoming/routing.rst index c9bd1e9eeb39..a9aa28602822 100644 --- a/user_guide_src/source/incoming/routing.rst +++ b/user_guide_src/source/incoming/routing.rst @@ -667,15 +667,19 @@ to only those defined by you, by setting the ``$autoRoute`` property to false: 404 Override ============ -When a page is not found that matches the current URI, the system will show a generic 404 view. You can change -what happens by specifying an action to happen with the ``set404Override()`` method. The value can be either -a valid class/method pair, just like you would show in any route, or a Closure: +When a page is not found that matches the current URI, the system will show a +generic 404 view. Using the ``$override404`` property within the routing config +file, you can define controller class/method for 404 routes. .. literalinclude:: routing/051.php -Using the ``$override404`` property within the routing config file, you can use closures. Defining the override in the Routing file is restricted to class/method pairs. +You can also change what happens by specifying an action to happen with the +``set404Override()`` method in Routes config file. The value can be either a +valid class/method pair, or a Closure: -.. note:: The ``set404Override()`` method does not change the Response status code to ``404``. +.. literalinclude:: routing/069.php + +.. note:: The 404 Override feature does not change the Response status code to ``404``. If you don't set the status code in the controller you set, the default status code ``200`` will be returned. See :php:meth:`CodeIgniter\\HTTP\\Response::setStatusCode()` for information on how to set the status code. diff --git a/user_guide_src/source/incoming/routing/051.php b/user_guide_src/source/incoming/routing/051.php index 8c598c400b03..33852c87e021 100644 --- a/user_guide_src/source/incoming/routing/051.php +++ b/user_guide_src/source/incoming/routing/051.php @@ -10,12 +10,3 @@ class Routing extends BaseRouting public ?string $override404 = 'App\Errors::show404'; // ... } - -// In app/Config/Routes.php -// Would execute the show404 method of the App\Errors class -$routes->set404Override('App\Errors::show404'); - -// Will display a custom view -$routes->set404Override(static function () { - echo view('my_errors/not_found.html'); -}); diff --git a/user_guide_src/source/incoming/routing/069.php b/user_guide_src/source/incoming/routing/069.php new file mode 100644 index 000000000000..991aa5c57b74 --- /dev/null +++ b/user_guide_src/source/incoming/routing/069.php @@ -0,0 +1,10 @@ +set404Override('App\Errors::show404'); + +// Will display a custom view +$routes->set404Override(static function () { + echo view('my_errors/not_found.html'); +});