Codeigniter调用视图

时间:2017-12-02 14:58:47

标签: php view codeigniter-3

我是CodeIgniter的新手,我想知道加载页面的最佳方法是什么,而不需要像这样一直调用页眉和页脚视图

$this->load->view('header');
$this->load->view('something');
$this->load->view('footer');

例如我成功登录并被重定向到仪表板页面。

2 个答案:

答案 0 :(得分:0)

为此,您需要有一个共同的功能/方法。

class My_Controller extends CI_Controller{

    public function __construct() {
       parent::__construct();
    }

    public function load_view($view_name,$data=Null){
         $this->load->view('header');
         $this->load->view($view_name,$data);
         $this->load->view('footer');
    }
}

现在使用My_Controller扩展所有控制器(不使用CI_Controller)

如果要将任何数据传递给视图,请从控制器直接调用该函数以加载视图并传递$data数组。

$this->load_view('test_view',$data);

如果您没有要发送到视图的任何内容,只需发送视图名称

$this->load_view('test_view');

希望对你有所帮助。

答案 1 :(得分:0)

为此,我使用像PHP这样的简单方法:

控制器:

class My_Controller extends CI_Controller{

    public function __construct() {
       parent::__construct();
    }

    public function load_view(){
         $data=array();     
         $this->load->view('dashboard_view',$data);

    }
    public function get_data(){

         $data['welcome_text']="Wooh ! I've a Something...";        
         $this->load->view('dashboard_view',$data);
    }
}

查看dashboard_view.php

<html lang="en">
    <body>
        <?php include('header.php');?>
         <h1>welcome to the dashboard </h1>   
        <?php include('footer.php');?>
    </body>
</html> 

注意: 在此,您不需要每次调用页眉和页脚只需更改控制器方法。

编辑功能的相同dashboard_view.php

<html lang="en">
    <body>
        <?php include('header.php');?>

        <?php 
        // you can use here any checking method whether it is 
        // I'll use isset() method to check  data is set or not 
        //if you don't use isset then it will give you an error when you call the load_view() method
        echo (isset($welcome_text) ? $welcome_text : '');

        ?>

        <?php include('footer.php');?>
    </body>
</html>