<?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 页面设置
}
}
}同理,有分页的控制器方法里,是同一个道理的!!如果是混合有查询的控制器方法,写得就要复杂一些。这里就不举例了。
最佳答案