Php 代码点火器MVC显示基本视图
请原谅,这是一个有点新手 我的主视图位于@app/views/index.php,如下所示:Php 代码点火器MVC显示基本视图,php,codeigniter,Php,Codeigniter,请原谅,这是一个有点新手 我的主视图位于@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
<?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>
头文件_meta.php位于(app/views):
标题
名为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 */
尝试将此代码添加到控制器中,可能您错过了此选项
function SpecialPage(){
parent::CI_Controller();
}
注意:
确保控制器名称与文件名相同
我还有一个问题,兄弟,你怎么叫页面加载
古德鲁克 我想是这一行:
<?php $this->load->view('header_meta.php'); ?>
显然,“$t>l>v()”必须更改为“echo$head”。或者,我更喜欢的方式(使用模板视图):
您的页面应命名为:
specialPage.php
而不是控制器文件夹下的index.php
- 有关控制器命名约定的更多信息,请阅读
- 这可以使用
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(以及它进一步包含的文件)加载。函数SpecialPage()
应该是\uu-construct()
,parent::CI\u-Controller()
应该是parent:\uu-construct()代码>
祝你好运那么控制器名称应该命名为SpecialPage.php,而不是index.php(位于app/controller下)?是;请将所有CI_控制器替换为控制器,也许这是我忘记问的问题:我们是否可以假设使用未修改的CI欢迎页面进行安装?是的,默认的欢迎工作正常。我基本上将welcome.php文件(在app/view下)重命名为index.php,并将其控制器从welcome_page.php重命名为index.php(在app/controller下)您关于在视图中不使用php的评论。。。那么,如何让它显示在/index.php文件中而不使用
。请参阅更新的代码。这仍然不起作用。正如我所说的,使用一个,而不是我编写的第二个代码块。哦,我必须添加:类必须匹配文件名(即“Index”,而不是“SpecialPage”)。我如何在视图中调用这个公共函数Index()方法?视图由控制器调用,而不是相反。如果访问“myhost.com/index.php/index”,CI将调用“index”controller.simplePage.php的“index”方法(按约定)?你从哪里得到simplePage?我现在在第6行得到对未定义方法CI_Controller::CI_Controller()的调用,这是函数SpecialPage(){parent::CI_Controller();}
<?php $this->load->view('header_meta.php'); ?>
$head = $this->load->view('header_meta', '', true);
$this->load->view('index', array('head' => $head));
$body = $this->load->view('index', '', true);
$this->load->view('template', array('body' => $body));