关于 空控制器 与 404

浏览:2547 发布日期:2015/03/11 分类:技术分享 关键字: 空控制器 404
配置文件 config.php 代码<?php
return array(
    // 使用 'ERROR_PAGE' 的配置不能返回 404 状态码
    'TMPL_EXCEPTION_FILE'   => SPSTATIC.'404.html',
    //'ERROR_PAGE'   => __ROOT__.'/statics/404.html',
);
空控制器 EmptyController.class.php 代码class EmptyController extends Controller {
    function _empty(){
        // 这样写就够了
        header("HTTP/1.1 404 Not Found");
        $this -> display();        //会自动调用配置里的 404 页面设置
    }

    function index() {
        // 这样写就够了
        header("HTTP/1.1 404 Not Found");
        $this -> display();        //会自动调用配置里的 404 页面设置
    }
}
注意啦:
以上对于 控制器和方法 为空时都是有效的,但对于通过 链接输入一些不存在的 id 值或 页码 p 值时,会显示一个没有数据填充的空页面。这就需要自己在输出数据的控制器方法里再设置了。
比如class ArticleController extends Controller {
    function index() {
        $id = I('get.id', 0, 'intval');
        $Article = M('Article');
        $showart = $Article -> find($id);
        
        //判断,如果通过链接手工输入的 id ,在数据库中不存在 而取得的数据为 空时
        if($showart){
            // 有数据时,输出到模板
            $this -> display();
        }else{
            // 手工输入 id 取得空数据,输出404,这样写就够了
            header("HTTP/1.1 404 Not Found");
            $this -> display();        //会自动调用配置里的 404 页面设置
        }
    }
}
同理,有分页的控制器方法里,是同一个道理的!!
如果是混合有查询的控制器方法,写得就要复杂一些。这里就不举例了。
最佳答案
评论( 相关
后面还有条评论,点击查看>>