在单个函数中创建多个视图

时间:2014-10-26 16:41:25

标签: php function codeigniter

这是我的主控制器我使用加载器功能作为常用并加载 菜单,标题和每个功能的页面(索引,博客等),如果我想加载 两页我怎么能这样做?

我的意思是如果我想要$ url =“index”和$ url =“blog”,$ url =“contact”

<?php

    public function loader($url,$menu,$data)
    {
        $this->load->view('assets/header',$menu);
        $this->load->view($url,$data);
        $this->load->view('assets/footer');
    }

    public function index()
    {   
        $menu['menu']="home";
        $menu['title']="Home Page";
        $data='null';
        $url="index";
        $this->loader($url,$menu,$data);
    }

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以通过更改$data

的值来实现目标
  $data['content']='contact'
  $this->load->view('template',$data); 

并在模板视图中执行此操作

   $this->load->view($content);

或者您也可以这样做

 $url='contact'; //name of your view page here
 $this->load->view($url,$data); 

答案 1 :(得分:0)

你可以通过几种方式做到这一点。在您的控制器中,您可以:

    //true returns the view content as a string
    $data['view1_html'] = $this->load->view('view1',$view1_data,true);
    //then load your master view as normal
    $this->load->view('master',$data);

或者在您的主​​视图中,您可以这样做:

    <?=$this->load->view('view1');?>

但是为了改变url的值并因此显示不同的视图,使用不同的控制器函数是明智的:

    public function blog(){
    ....
    $this->loader('blog',$menu,$data);
    }