有没有办法从CodeIgniter中的控制器加载内联视图片段?

时间:2011-07-15 21:32:42

标签: php codeigniter

假设我有这些行的控制器功能:

$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 个答案:

答案 0 :(得分:1)

你为什么不这样做? 您应该将可变数据加载到视图中,然后从数据中操作视图。

如果必须这样做,请执行以下操作:

$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