如何在Codeigniter中将视图页面与相同的页眉和页脚组合在一起?

时间:2017-05-05 06:11:26

标签: php codeigniter header

我想创建MVC中几个视图页面中包含的公共页眉和页脚。

我想在我的项目中使用codeigniter。大多数人建议我在ci中使用require_once php函数。但是,我该怎么办?

有人可以通过逐步程序在视图文件中包含一次require。 通过Controller,我们可以使用如下: -

public function home(){ 
    $this->load->view('templates/header');
    $this->load->view('about');
    $this->load->view('templates/footer');
    }
   public function about(){ 
    $this->load->view('templates/header');
    $this->load->view('index');
    $this->load->view('templates/footer');
    }

我们如何使用require_once来查看ci中的视图页面?

2 个答案:

答案 0 :(得分:0)

控制器

public function home(){
    $this->load->view('index');
    }
   public function about(){
    $this->load->view('about');
    }

索引视图

$this->load->view('templates/header');

// Code of index file

$this->load->view('templates/footer');

答案 1 :(得分:0)

在阅读完您的问题之后,我认为您希望使用包含菜单,页脚等的基本样式制作母版页或布局。

假设你有一个html页面

<html>
    <head>
        <title> Hello World </title>
    </head>
    <body>
        <div id="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </div>

        <div id="main-content">
            <!-- this is the dynamic part -->
        </div>

        <div id="footer">
            Copy Right 2013 Hello World
        </div>
    </body>
</html>

您可以将其拆分为1-标题2-菜单3-主要内容4页脚

你基本上把

<html>
    <head>
        <title> Hello World </title>
    </head>
    <body>
in one view called "view_header" then you put

        <div id="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </div>
        <div id="main-content">
in a view called "view_menu" and then you put

        </div>

        <div id="footer">
            Copy Right 2013 Hello World
        </div>
    </body>
</html> 

在名为“view_footer”的视图中,然后在您的控制器中

$this->load->view('view_header');
$this->load->view('view_menu');
$this->load->view('YOUR_VIEW');
$this->load->view('view_footer');

另一个解决方案,我认为更好:创建一个名为view_template_1.php的视图

<html>
    <head>
        <title> Hello World </title>
    </head>
    <body>
        <div id="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </div>

        <div id="main-content">
            <?php $this->load->view($content); ?>
        </div>

        <div id="footer">
            Copy Right 2013 Hello World
        </div>
    </body>
</html>
控制器中的

表示您要调用名为About

的视图
$data = array('content'=>'about');
$this->load->view('view_template',$data);

Reference