我有一个自定义404控制器。它工作正常。在routes.php我有:
$route['404_override'] = 'custom404';
这会访问此控制器:
class custom404 extends MasterController {
public function __construct(){
parent::__construct();
}
public function index(){
$this->output->set_status_header('404');
$crit = array(
'subtype' => 'footer',
'status' => 'public'
);
$res = $this->mongo_db->where($crit)->get('contentobjects');
$this->pagedata = $res[0];
$this->load->view('404');
}
}
我可以从其他控制器拨打电话吗? 目前我只是通过调用(表面上)从不存在的页面来强制解决问题:
if(!$this->viewable($res[0])){
header('Location: /404');
die;
}
答案 0 :(得分:0)
是的,你可以直接重定向到它。
然而,CI附带一个错误文件夹,包含HTML的子文件夹和404错误视图页面。如果您自定义此页面,则所有标题都将自动正确设置,您可以更清晰地调用它。
if (empty($result))
{
// show error
show_error('The result you requested could not be found', '404');
}
或者更简洁:
if (empty($result)) show_error('The result you requested could not be found', '404');
可以使用$ message字段在模板中访问此处的消息。
然后,您可以轻松设置所需的任何代码,例如401等。