在View CodeIgniter中加载视图

时间:2019-05-21 03:52:42

标签: php html codeigniter

我想将view中来自逻辑语句的controller加载到view中。就像这样

控制器

 public function index(){
   $this->lib();
   $this->view('main');
 }
 public function lib(){
   if(TRUE){
     // $this->view('something1') in $this->view('main')
   }
   else{
     // $this->view('something2') in $this->view('main')
   }
 }

**查看**

<html>
<body>
<!-- view from $this->view('main') -->
<!-- want to show view from lib() -->
</body>
</html>

如何显示$this->view('something')lib()的{​​{1}}收益?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我找到的唯一可行的方法是:

控制器:

public function index() {

     $data['internal_view'] = $this->load->view('stmt', [], true);
     $this->load->view('main', $data);

}

“主”视图:

<html>
<body>
<?php echo $internal_view; ?>
</body>
</html>

注意:view中的第3个参数允许视图以字符串形式返回,而不是自动输出到浏览器。由于此功能,您可以将视图分配为另一个函数的返回字符串,并使用它来生成internal_view或您决定调用它的任何内容。

答案 1 :(得分:0)

您可以保留 main 视图,还可以保留 lib 条件视图,并将其传递给主控制器。
控制器:

public function index(){
    $data['lib_view'] = $this->lib();
    $this->view('main', $data);
}

public function lib(){
    if(TRUE){
        return $this->load->view('something1', true);
    }
    else{
        return $this->load->view('something2', true);
    }
}

“主”视图:

<html>
<body>
<!-- view from $this->view('main') -->
<?php echo $lib_view ?>
</body>
</html>