2011-01-06 84 views
0

剛剛開始使用Codeigniter(昨天),想知道人們使用的是什麼樣的模板功能?CodeIgniter:使用模板的提示

是否有可能創建一個視圖,只是加載whenerever必要嗎?

感謝,

Jonesy

+1

http://stackoverflow.com/questions/3957000/what-c​​odeigniter-template-library-is-best的副本。 – treeface 2011-01-06 17:39:14

回答

1

模板的想法是與共同的報頭創建共享佈局。頁腳等,然後只是有一個「身體」,每頁改變。

在最基本的層面上你可以只包括裏面的每一個你的意見頁眉和頁腳這樣的:

負載>視圖(「頭」); ?>

這是我的網頁。

負載>視圖( '頁腳'); ?>

這可以很好,但開始建立任何實際大小的應用程序,你會發現問題。

有做模板的百萬的方式,但我已經使用多年的方法是這樣的Template library。它通過20-30個不同項目的項目看到我,並且被許多人使用,所以你知道它經過了測試。

+0

頁面鏈接將轉到404鏈接。實際鏈接:https://github.com/philsturgeon/codeigniter-template – 2015-04-30 15:52:21

0

是否有可能創建一個視圖,只是加載whenerever必要嗎?

是的。這是MVC結構的典型行爲,而不僅僅是CI。您的觀點是應該大部分沒有邏輯/處理的表示層。

+0

所以說我有一個視圖稱爲頭我可以在另一個視圖中加載頭? – iamjonesy 2011-01-06 19:29:20

+0

是的,確切地說。這通常是如何完成的。基本上使用<?php include(「header.php」); ?>在你的意見中。該視圖與標準PHP文件是相同的,除了您從不直接訪問它們這一事實。 :) – 2011-01-06 19:38:46

+1

@iamjonesy:不,你不應該在你的視圖中使用'include'語法。如果你想在另一個視圖中加載視圖,使用CodeIgniter的視圖加載器:'$ this-> load-> view('header')'。 – treeface 2011-01-06 20:35:05

0

另一種方式來做到這一點如下。

在你的控制器,載入您的模板,像這樣

$template_data = array('contains', 'data', 'for', 'template', 
         'while', 'the', 'specific' => array('may', 'contain', 
         'data', 'for', 'the', 'view_file')); 
$this->load->view('template/needed.php'); 

在模板中,你現在有$template_data數組來填充它[如果需要的話!]。您現在可以加載特定視圖像這樣

<div id="yield"> 
    <?php echo $this->view('specific/viewer.php', $template_data['specific']); ?> 
</div> 

注:

  1. template/needed.php應在application/views文件夾中。
  2. specific/viewer.php文件還應該在你的views目錄(即此文件路徑應該是這樣的WEB_ROOT/application/views/specific/viewer.php

這樣做的好處是,任何視圖文件可以作爲一個模板,如果需要的話。