CodeIgniter $ this-> load-> view

时间:2017-01-11 06:54:23

标签: php codeigniter

public function admin($page = "admin")
{   

    $data['title'] = "admin";
    $data['menu'] = "admin";


    $this->load->view('tpl/header_admin',$data);
    $this->load->view('admin/'.$page,$data);

}

这就是我尝试做的事情,标题和内容页面,但我不知道为什么它不起作用,如果我这样做

public function admin($page = "admin")
{   

    $data['title'] = "admin";
    $data['menu'] = "admin";

    $this->load->view('tpl/header_admin',$data);

}

OR

public function admin($page = "admin")
{   

    $data['title'] = "admin";
    $data['menu'] = "admin";

    $this->load->view('admin/'.$page,$data);

}

它将全部正常工作,我可以看到管理员或标题中的内容,但如果我将两个load->视图放在一起,它将只显示$ this-> load-> view(' admin /'.$page,$data);标题刚刚赢了

这就是CI网站所说的应该做的事情:

$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);

我没有看到不同的

顺便说一句:如果我访问/ admin,标题不会显示,但如果我访问/ admin / list,它将显示...

第一次发生在我身上,为什么?

2 个答案:

答案 0 :(得分:0)

试试这样..

<?php
public function admin($page = "admin")
{   

    $data['title'] = "admin";
    $data['menu'] = "admin";


    $data['header'] = $this->load->view('tpl/header_admin',$data,TRUE);//takes contains as string
    $this->load->view('admin/'.$page,$data);

}

在您的视图中查看admin / admin.php

if (isset($header))
{
    echo $header;
}
//Then other codes

$data['header'] = $this->load->view('tpl/header_admin',$data,TRUE);此语句包含tpl/header_admin.php作为带有html标记的字符串。

答案 1 :(得分:0)

函数$ this-&gt; load-&gt; view()
将输出HTML标头。所以你不能两次输出标题 正确的方法是 控制器文件

    public function admin($page = "admin")
    {   
        $data['title'] = "admin";
        $data['menu'] = "admin";
        $this->load->view('admin/index'.$page,$data);
    }

查看文件admin / index.php

    <html>
    <?php include '../tpl/header_admin.php' ?>
    template context.....
    </html>

这是使用模板文件的方式