Codelgniter layout 就像是版型(templet)的概念,通常會變動的地方只有一塊,但是每一頁都要寫同樣的東西像是header or footer or menu 之類的,此時可以運用版型(templet)的概念,套上版型(templet)後只需要針對變動的區塊進行開發,可以省下不少時間。
安裝
1. Layout.php
至 http://codeigniter.com/wiki/layout_library/ 將 Source內容存至 /application/libraries/Layout.php
2. 設定自動載入 layout library
1 2 | // 修改 /application/config/autoload.php $autoload['libraries'] = array(‘layout’); |
3. 新增layout(templet)檔案
1 2 3 4 | create /application/views/layout_main.php // 在要輸出 views 檔案的位置寫入 <?php echo $content_for_layout?> |
4. 控制器使用layout
在你的控制器 function 裡寫入如下
1 | $this->layout->view(‘view-file’); |
說明
運作流程就是控制器載入layout(templet),並將要輸出的views檔案名帶給layout(templet),而不是控制器直接載入 views檔案了,而views內容則會是在layout(templet)裡面的 $content_for_layout 這變數輸出。
更改 layout(templet) 檔案名稱和位置?
預設layout(templet)檔案名稱是 ‘layout_main’ ,在$this->layout->view(‘view-file’); 之前指定layout(templet)檔案即可。
1 2 | $this->layout->setLayout(‘../templet/templet’); $this->layout->view(‘view-file’); |