Загрузить представление в представлении CodeIgniter - PullRequest
0 голосов
/ 21 мая 2019

Я хочу загрузить 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()в $this->view('main')?Есть идеи?

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Единственный найденный мной способ - это:

Контроллер:

public function index() {

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

}

"основной" вид:

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

Примечание: 3-й параметр в view позволяет отображать представление в виде строки, а не автоматически выводить в браузер. Благодаря этой функциональности вы можете назначить представление как возвращаемую строку из другой функции и использовать ее для генерации internal_view или того, что вы решите вызвать.

0 голосов
/ 21 мая 2019

Вы можете сохранить main view, а также сохранить условное представление 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);
    }
}

'main' Вид:

<html>
<body>
<!-- view from $this->view('main') -->
<?php echo $lib_view ?>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...