Есть ли способ загрузить фрагменты встроенного представления из контроллера в CodeIgniter? - PullRequest
0 голосов
/ 16 июля 2011

Допустим, у меня есть функция контроллера с этими строками:

$this->load->view('stdHeader_view');
echo "<div class='main'>";
$this->loadView('foo_view');
echo '</div>';
$this->load->view('stdFooter_view');

Это не будет делать то, что я хочу, потому что $this->load->view() не сразу отображает загруженный вид, поэтому 2 повторяетсястроки появятся в верхней части файла, который в конечном итоге генерируется:

<div class='main'></div><html>...

Так есть ли способ сделать то, что я хочу, по сути, «эхо» фрагменты HTML-кода встроенного в контроллере, и они появляются вто же самое место относительно представлений, загруженных выше и ниже их?Очевидно, я мог бы сделать это, создав файлы полного представления для <div class='main'> и </div>, но это кажется немного глупым.

1 Ответ

1 голос
/ 16 июля 2011

Почему ты не хочешь этого делать? Вы должны загрузить свои переменные данные в представление и вместо этого манипулировать представлением из данных.

Если это действительно нужно сделать, сделайте что-то вроде этого:

$html = $this->load->view('stdHeader_view', TRUE); //add TRUE to the second parameter, to return the views content
$html .= '<div class="main">';
$html .= $this->load->view('foo_view', TRUE);
$html .= '</div>';
$html .= $this->load->view('stdFooter_view', TRUE);
$this->output->set_output($html); //ends the controller and shows $html as output
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...