对不起,如果这是一个新手。
我的主视图位于@ app / views / index.php:
<?php echo $head ?>
</head>
<body>
<div id="container">
<h1>Welcome to CodeIgniter!</h1>
<div id="body">
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:</p>
<code>application/views/welcome_message.php</code>
<p>The corresponding controller for this page is found at:</p>
<code>application/controllers/welcome.php</code>
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="user_guide/">User Guide</a>.</p>
</div>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p>
</div>
</body>
</html>
header_meta.php文件位于(app / views):
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<link rel="icon" type="image/png" href="img/favicon.ico" />
<!--meta-->
控制器,名为SpecialPage.php,位于app / controllers /:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class SpecialPage extends CI_Controller {
function SpecialPage(){
parent::CI_Controller();
}
public function index()
{
$head = $this->load->view('header_meta', '', true);
$this->load->view('index', array('head' => $head));
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
错误我正在使用SpecialPage.php控制器:
Call to undefined method CI_Controller::CI_Controller() on line 6
这是:
function SpecialPage(){
parent::CI_Controller();
}
为什么这仍然只显示404错误?????
答案 0 :(得分:2)
我想这就是这句话:
<?php $this->load->view('header_meta.php'); ?>
&#34; .php&#34;延伸似乎是罪魁祸首。
顺便说一句,我不建议在你的视图中使用PHP代码(回声和循环除外)。更好的是在你的控制器中编写它:
$head = $this->load->view('header_meta', '', true);
$this->load->view('index', array('head' => $head));
显然,&#34; $ t&gt; l&gt; v()&#34;必须改为&#34; echo $ head&#34;。或者,我喜欢的方式(使用模板视图):
$body = $this->load->view('index', '', true);
$this->load->view('template', array('body' => $body));
答案 1 :(得分:1)
您的网页应命名为:
specialPage.php
而非控制器文件夹下的index.php。
有关控制器命名约定的更多信息,请阅读here。
预计会使用yourhost.com/index.php/specialPage
或yourhost.com/specialPage
(如果您的.htaccess
重写已启用)。
Codeigniter尝试根据您指定的classname
(通过controller/model
)打开文件。 Codenigniter不知道为什么它应该为您的类文件加载index.php
(除非您将类名指定为Index
)。
我个人建议不要将index.php用于您的文件,因为它可能会让您和其他人感到困惑,这将是一个自动加载的文件。然而,在codeigniter中,唯一的自加载文件是codeigniter安装的根文件夹中的index.php
。所有其他文件仅通过index.php(以及它进一步包含的文件)加载。
答案 2 :(得分:0)
尝试将此代码添加到控制器中,也许您错过了
function SpecialPage(){
parent::CI_Controller();
}
注意: 确保您的控制器名称与文件名
相同我还有另一个问题,你如何调用页面加载?
Gudluck !!
答案 3 :(得分:0)
功能SpecialPage()
应为__construct()
,parent::CI_Controller()
应为parent::__construct();.
祝你好运