gpt4 book ai didi

php - Codeigniter 3 show_404函数问题-MY_Exception无法加载

转载 作者:行者123 更新时间:2023-12-03 07:49:44 27 4
gpt4 key购买 nike

我正在使用Codeigniter 3,并且想自定义show_404()函数。

这是我的主 Controller :

class Welcome extends CI_Controller {

public function index() {
$this->load->view('welcome_message');
}

public function otherMethod() {
show_404();
}

}

在我的routes.php上添加
$route['404_override'] = 'error/show_404_custom';

使用show_404_custom方法创建 Controller Error.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Error extends CI_Controller {

public function show_404_custom() {
$this->load->view('404_read_view');
}
}

404_read_view.php View :
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<p>Custom 404 page.</p>
</body>
</html>

然后,我用一些未定义的URL进行了测试,例如:
/index.php/welcome/method_A 

我成功获取了“自定义404”页面。

但是,如果我运行使用 show_404()函数的方法,例如:
/index.php/welcome/otherMethod 

我奇怪地得到了标准的Codeigniter 404页面。

我搜索了一下,发现我应该扩展Exception核心类并重写show_404()函数,如下所示:
https://stackoverflow.com/a/8425433/4301970

因此,我在/application/core中创建了MY_Exceptions.php类:
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');

class MY_Exceptions extends CI_Exceptions {

public function __construct() {
parent::__construct();
}


public function show_404() {
$CI =& get_instance();
$CI->load->view('404_read_view');
echo $CI->output->get_output();
exit;
}

}

当我运行URL时:
/index.php/welcome/otherMethod 

我得到错误:
Fatal error: Class 'MY_Exceptions' not found in (...)\system\core\Common.php on line 196

我查看了Common.php的内部内容,发现load class函数在libs目录而不是core目录中?
function &load_class($class, $directory = 'libraries', $param = NULL)

我怎么解决这个问题?

最佳答案

使用它,它在CI 3.1.4中有效(我最新的项目)

class MY_Exceptions extends CI_Exceptions {

public function __construct()
{
parent::__construct();
}

function show_404($page = '', $log_error = TRUE)
{

$CI =& get_instance();
$CI->load->view('404_read_view');
echo $CI->output->get_output();
exit;
}
}

关于php - Codeigniter 3 show_404函数问题-MY_Exception无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39667275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com