我正在学习代码点火器。基本上,我想做的是当用户转到views
目录中不存在的URL时显示 404 错误消息。
因此,我在application/controllers/
处创建了一个名为Pages.php
的新文件,如下所示:
<?php
class Pages extends CI_Controller
{
public function view($page = 'home')
{
if(!file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
show_404();
}
$data['title'] = ucfirst($page);
$this->load->view('templates/header');
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer');
}
}
?>
然后,我在 views 目录中创建了一个名为templates
的文件夹,其中包含一个header.php
文件和一个footer.php
文件。我还在同一目录下创建了一个pages
文件夹。
当我转到尚不存在的自定义URL(例如http://localhost/codeigniter/pages/about
)时,应该得到一条 404页面未找到的消息。
但是问题是,浏览器显示的是找不到对象!,而不是那个。
那么这有什么问题,我该如何解决此问题?
答案 0 :(得分:1)
这不是CI的工作方式。对于初学者,pages/about
不存在。常规URI方案为Controller
/ method
,因此您需要指向pages/view
更深入地讲,CI已经具有错误处理程序(可以更改的预制模板位于/views/error
中,并且可以根据错误类型创建不同的错误页面
答案 1 :(得分:0)
您的网址
http://localhost/codeigniter/pages/about
上面的网址不正确,请使用上面的网址代替
http://localhost/codeigniter/pages/view/about
URL格式
protocol://domain/class/method/var1/var2/...
Protocol = http://
Domain = localhost/codeigniter (In localhost)
Class = pages
Method = view
Var1 = about
var2 = '' (if any)