2011-07-15 48 views
0

比方說,我有這些線路的控制功能:有沒有辦法從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

你爲什麼不想那麼做? 您應該將您的變量數據加載到視圖中,而不是從數據操縱視圖。

假如真的有許多工作要做,做這樣的事情:

$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 
+0

我認爲這是想要做:)反正一個完全合理的事情,你的最後一行間接導致了我的答案,這是使用'$ this-> output-> append_output()'代替'echo'。 –

相關問題