docs: update description for 404 Override

This commit is contained in:
kenjis 2024-01-31 09:08:25 +09:00
parent 65c6692ef8
commit f95f9970fb
No known key found for this signature in database
GPG Key ID: BD254878922AF198
3 changed files with 19 additions and 14 deletions

View File

@ -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.

View File

@ -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');
});

View File

@ -0,0 +1,10 @@
<?php
// 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');
});