404 Page Not Found in CodeIgniter 4

1zmg4dgp  于 2023-09-28  发布在  其他
关注(0)|答案(5)|浏览(104)

CodeIgniter 4框架404页面找不到了怎么办?

x6yk4ghg

x6yk4ghg1#

转到Routes.php文件并找到

$routes->set404Override();

现在,如果你想只显示一条错误消息,

$routes->set404Override(function(){
    echo "your error message";
});

而不是

$routes->set404Override();

或者如果你想返回一个视图,那么就像下面这样写:

$routes->set404Override(function(){
    return view('your_filename');
});

而不是

$routes->set404Override();
x3naxklr

x3naxklr2#

//将执行App\Errors类的show 404方法

$routes->set404Override('App\Errors::show404');

//将显示自定义视图

$routes->set404Override(function()
{
    echo view('my_errors/not_found.html');
});
8tntrjer

8tntrjer3#

要自定义您的404页面,请根据您的喜好修改app/Views/errors/html/error_404.php

bksxznpy

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');
hl0ma9xz

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

相关问题