如何在codeigniter中将内容放置在正确的位置


How to place content in right place in codeigniter?

我有这个代码,当我调用函数与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