【问题标题】:Display a view for 404 error in CodeIgniter在 CodeIgniter 中显示 404 错误的视图
【发布时间】:2011-07-20 07:13:48
【问题描述】:

CodeIgniter 有一个非常简单的默认错误 404 消息:

404 Page Not Found
The page you requested was not found.

我不想在完全空白的页面上使用此错误消息,而是将此消息包装在我的页眉和页脚视图之间,以便错误消息与其他页面具有相似的外观。

为此,我创建了一个错误视图?例如:

my404_view.php

<? $this->load->view('header'); ?>
404 Page Not Found
The page you requested was not found.
<? $this->load->view('footer'); ?>

现在,我如何使用 my404_view.php 作为默认视图来显示 404 消息,而不是使用 CodeIgniter 默认错误消息。

【问题讨论】:

    标签: php codeigniter http-status-code-404


    【解决方案1】:

    您应该更改您的 routes.php。例如:

    在 application/config/routes.php 中

    $route['404_override'] = 'welcome/_404';
    

    在应用程序/控制器/welcome.php 中

    function _404(){
        $this->load->view("my404_view");
    }
    

    在当前版本的 CI 中,这应该足够了。

    【讨论】:

    • 这仅在找不到请求的路由时有效。拨打show_404()时无效
    • 谢谢,这很简单也很有帮助
    【解决方案2】:

    在默认错误 404 页面中包含页眉和页脚似乎是 CodeIgniter 用户的常见问题。我想添加这个链接:http://www.simonemms.com/2011/05/06/codeigniters-404-override-problem/ 的 Simon Emms 的 cmets,因为他非常清楚地描述了这个问题。 我已经尝试了http://maestric.com/doc/php/codeigniter_404 的建议,并尝试了 Simon Emms 的想法和其他想法,但无法实施。我在 PHP 和 CodeIgniter 方面有点新手,所以这可能是因为无知。也就是说,很难确保将建议的子类放在正确的位置并正确配置,例如,routes.php。在尝试了各种相当复杂的想法 3 天后,我突然想到我可以在默认错误 404 页面中使用包含语句。唯一的困难是找出传递给 include 语句的路径。 在 /system/core/Exceptions.php 第 146 行,我发现 CodeIgniter 开发人员使用 APPPATH。然后,您只需要将路径附加到要包含的页眉和页脚页面。 我的新默认错误 404 页面现在如下所示:

    <?php
    include APPPATH.'/views/templates/header.php';
    ?>
    <div id="container">
        <h1><?php echo $heading; ?></h1>
        <?php echo $message; ?>
    </div>
    <?php
    include APPPATH.'/views/templates/footer.php';
    ?>
    

    对我来说,这似乎比尝试更改 CodeIgniter 中的核心类要容易得多。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2014-05-25
      • 2014-08-01
      • 1970-01-01
      • 2015-12-13
      • 2012-07-12
      • 2016-03-09
      • 2016-08-15
      • 2012-06-20
      • 2015-07-04
      相关资源
      最近更新 更多