我有这个代码,当我调用函数与mydomain/index.php/blog一切工作,但内容即"索引"在这种情况下被显示在页面的顶部。我希望它显示在内容区,我已经定义在我的css。有什么问题吗?
<?php
class Blog extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$this->load->view('template/header');
echo "index";
$this->load->view('template/footer');
}
}
?>
有两种方法可以在CodeIgniter中向浏览器显示输出。使用CI视图并回显数据。echo
命令立即执行,这就是它位于页面顶部的原因。load->view
方法是在输出库中的CI中执行的,因此它并不完全按照echo语句的顺序执行。
我会说为你的内容创建另一个视图,然后像这样调用所有视图:
$data = array('content_html' => 'index');
$this->load->view('template/header');
$this->load->view('template/content', $data);
$this->load->view('template/footer');
你的内容视图可以回显content_html
变量:
// views/template/content.php
echo $content_html;
或者,你可以在你的控制器中控制内容(虽然,不是最好的主意):
$header = $this->load->view('template/header', array(), TRUE);
$footer = $this->load->view('template/footer', array(), TRUE);
echo $header;
echo "index";
echo $footer;
将TRUE
作为第三个参数传递给load->view
方法,将视图作为字符串返回,而不是将其输出到浏览器-允许您控制输出
如果你想在你的内容区显示数据
<?php
class Blog extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$data['content'] ='Your content';
$this->load->view('template/header');
$this->load->view('template/content_template',$data);
$this->load->view('template/footer');
}
}
?>
为内容创建一个单独的模板文件,并将此代码粘贴到内容文件中。
<?php
print $content;
?>
也参考这个urlhttp://ellislab.com/codeigniter/user-guide/general/views.html