CodeIgniter 4框架404页面找不到了怎么办?
x6yk4ghg1#
转到Routes.php文件并找到
$routes->set404Override();
现在,如果你想只显示一条错误消息,
$routes->set404Override(function(){ echo "your error message"; });
而不是
或者如果你想返回一个视图,那么就像下面这样写:
$routes->set404Override(function(){ return view('your_filename'); });
x3naxklr2#
//将执行App\Errors类的show 404方法
$routes->set404Override('App\Errors::show404');
//将显示自定义视图
$routes->set404Override(function() { echo view('my_errors/not_found.html'); });
8tntrjer3#
要自定义您的404页面,请根据您的喜好修改app/Views/errors/html/error_404.php。
app/Views/errors/html/error_404.php
bksxznpy4#
对于自定义错误消息在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');
hl0ma9xz5#
在@Christianto答案上展开,在4.3.7中,当使用控制器方法覆盖404时,至少我必须输入完整的命名空间路径。
// In Routes.php (full path) $routes->set404Override('\App\Controllers\Start::pageNotFound'); // In the controller public function pageNotFound() { return $this->view('error_404'); }
5条答案
按热度按时间x6yk4ghg1#
转到Routes.php文件并找到
现在,如果你想只显示一条错误消息,
而不是
或者如果你想返回一个视图,那么就像下面这样写:
而不是
x3naxklr2#
//将执行App\Errors类的show 404方法
//将显示自定义视图
8tntrjer3#
要自定义您的404页面,请根据您的喜好修改
app/Views/errors/html/error_404.php
。bksxznpy4#
对于自定义错误消息
在Config\routes.php
在我视图文件中,显示错误:
我的控制器:
hl0ma9xz5#
在@Christianto答案上展开,在4.3.7中,当使用控制器方法覆盖404时,至少我必须输入完整的命名空间路径。