我使用視圖的組合來構建輸出。目的是在頁面上手動排列視圖,然後用視圖內容填充信息,即頁面排列由控制器完成。佈局:插入文本以排列控制器的視圖
事情是這樣的:
echo "<html>";
$this -> load -> view('templates/head', $data);
$this -> load -> view('templates/header', $data);
echo "<body>";
$this -> load -> view('templates/navigation', $data);
echo "<main>";
$this -> load -> view('users/view',$data);
echo "</main>";
$this -> load -> view('templates/footer', $data);
echo "</body>";
echo "</html>";
我遇到的問題是,標籤被輸出,這是隨後與意見的轉儲一起結塊。輸出是沿着這條線:
<html>
</html>
<body>
<main>
</main>
</body>
... Output From each View ...
有沒有任何人有這種事情的經驗?如何正確設置它。有這site這表明模板可能更有用於此目的。還有一箇舊的discussion/forum/blog,或者至少我假設它是基於類實例化的舊的,它顯示內容分配給$data
變量,然後最終在主視圖中繪製所有內容。當我嘗試後者時,就是在將它們放在一起之前將它們一起收集起來。
有什麼辦法可以將html注入輸出嗎?
(我懷疑我錯過了文檔中的一些態度溫和線)
我已經尋找了模板化的東西,我的印象是,我需要從控制器和思想做到這一點它作爲合成。從SO good,ok和soso答案。
CI沒有提供默認的模板機制,有一個模板解析器類,但實質上在視圖中進行文本替換。這site顯示如何爲感興趣的人生成一個視圖類。
我最初雖然可能有一個類似於HTML助手類的幫助函數來生成關閉和打開標記,但沒有骰子,因此有關注入的問題。看起來可能有一些使用Output類的控件。
對於那些感興趣的人:我已經用一系列調用其他視圖的模板去看了視圖下的'layout'文件夾。然後<html>/<body>/<main>
標籤將調用分配給不同的子視圖'class/view',我將其分配給$data
中的數組。子視圖最大的包含元素是<article>
。據我所知,這可以將模板抽象保持在最低水平。
你爲什麼要在控制器中產生輸出? – Ryan
查看CI UserGuide - http://ellislab.com/codeigniter/user-guide/general/views.html我相信很好地解釋瞭如何使用視圖。 – Boris
@Stanyer這個想法不是這麼做的,這就是爲什麼我首先問了這個問題,我的代碼開始感到尷尬,這通常表明你是一個更好的方式 – Carel