как загрузить представление в другое представление codeigniter 2.1? - PullRequest
25 голосов
/ 23 февраля 2012

Я работал с CI и увидел, что на веб-сайте CI вы можете загрузить представление как переменную часть данных, которые вы отправляете в «основное» представление, то есть, согласно сайту (который говорит о многом, и многие не такие, как они говорят ... ej pagination и другие) я сделал что-то вроде этого

$data['menu'] = $this->load->view('menu');
$this->load->view ('home',data);

Результатом этого является то, что я получаю эхо меню в верхней части сайта (до того, как запускает мое тело и все), и где должно быть его ничего, как если бы были напечатаны до всего ... Я понятия не имею, Если честно, у кого-нибудь была такая же проблема раньше?

Ответы [ 2 ]

68 голосов
/ 23 февраля 2012

Два способа сделать это:

  1. Загрузите его заранее (как вы делаете) и перейдите к другому виду

    <?php
    // the "TRUE" argument tells it to return the content, rather than display it immediately
    $data['menu'] = $this->load->view('menu', NULL, TRUE);
    $this->load->view ('home', $data);
    
  2. Загрузить представление «изнутри» представления:

    <?php
    // put this in the controller
    $this->load->view('home');
    
    // put this in /application/views/home.php
    $this->view('menu');
    echo 'Other home content';
    
7 голосов
/ 11 марта 2014

Создать вспомогательную функцию

function loadView($view,$data = null){
    $CI = get_instance();
    return $CI->load->view($view,$data);
}

Загрузите помощника в контроллер, затем используйте функцию в вашем представлении, чтобы загрузить другую.

<?php 
...
    echo loadView('secondView',$data); // $data array
...
?>
...