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

时间:2013-01-03 17:59:38

标签: php 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');
        }

    }
    ?>

2 个答案:

答案 0 :(得分:2)

有两种方法可以在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方法将视图作为字符串返回,而不是将其输出到浏览器 - 允许您控制输出。

答案 1 :(得分:1)

如果您想在内容区域中显示数据

<?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; 
?>

另请参阅此网址 http://ellislab.com/codeigniter/user-guide/general/views.html