如何自定义在 CodeIgniter 4 中找不到的 404 页面
How to Custom 404 Page Not Found in CodeIgniter 4
我刚学CodeIgniter 4 Framework。如何自定义我的 404 页面未找到?
// 会执行 App\Errors class
的 show404 方法
$routes->set404Override('App\Errors::show404');
// 将显示自定义视图
$routes->set404Override(function()
{
echo view('my_errors/not_found.html');
});
要自定义您的 404 页面,请根据您的喜好修改 app/Views/errors/html/error_404.php
。
转到您的 Routes.php 文件并找到
$routes->set404Override();
现在,如果您只想显示一条错误消息,请写
$routes->set404Override(function(){
echo "your error message";
});
而不是
$routes->set404Override();
或者
如果你想return一个视图然后写如下:
$routes->set404Override(function(){
return view('your_filename');
});
而不是
$routes->set404Override();
对于自定义错误消息
在 Config\routes.php
// Custom 404 view with error message.
$routes->set404Override(function( $message = null )
{
$data = [
'title' => '404 - Page not found',
'message' => $message,
];
echo view('my404/viewfile', $data);
});
在我的视图文件中,显示错误:
<?php if (! empty($message) && $message !== '(null)') : ?>
<?= esc($message) ?>
<?php else : ?>
Sorry! Cannot seem to find the page you were looking for.
<?php endif ?>
来自我的控制器:
throw new \CodeIgniter\Exceptions\PageNotFoundException('This is my custom error message');
我刚学CodeIgniter 4 Framework。如何自定义我的 404 页面未找到?
// 会执行 App\Errors class
的 show404 方法$routes->set404Override('App\Errors::show404');
// 将显示自定义视图
$routes->set404Override(function()
{
echo view('my_errors/not_found.html');
});
要自定义您的 404 页面,请根据您的喜好修改 app/Views/errors/html/error_404.php
。
转到您的 Routes.php 文件并找到
$routes->set404Override();
现在,如果您只想显示一条错误消息,请写
$routes->set404Override(function(){
echo "your error message";
});
而不是
$routes->set404Override();
或者 如果你想return一个视图然后写如下:
$routes->set404Override(function(){
return view('your_filename');
});
而不是
$routes->set404Override();
对于自定义错误消息
在 Config\routes.php
// Custom 404 view with error message.
$routes->set404Override(function( $message = null )
{
$data = [
'title' => '404 - Page not found',
'message' => $message,
];
echo view('my404/viewfile', $data);
});
在我的视图文件中,显示错误:
<?php if (! empty($message) && $message !== '(null)') : ?>
<?= esc($message) ?>
<?php else : ?>
Sorry! Cannot seem to find the page you were looking for.
<?php endif ?>
来自我的控制器:
throw new \CodeIgniter\Exceptions\PageNotFoundException('This is my custom error message');