2010-11-29 56 views

回答

1

只需爲頁眉創建一個視圖,然後在頁面的頂部和底部創建一個頁腳視圖並將它們吐出。或者,創建一個模板視圖並加載它,然後將其他視圖注入模板的內容區域。無論哪種方式將讓你到你想要的地方。如果您希望它自動發生,您可以在控制器的構造函數中創建模板視圖,並將其保存到控制器類的成員中。然後使用它,例如$ this-> template將成爲模板視圖。

+0

你是說我會在每個視圖頂部添加負載>視圖(「頭」)?>? – roger 2010-11-29 13:30:53

+0

你可以在每個主要視圖的頂部做到這一點,是的。但不是每個觀點。但是,我在每種控制器方法的頂部說。 – DampeS8N 2010-11-29 13:33:27

10

您可以創建一個主視圖。

視圖/ master.php

$this->load->view('header'); 
echo $content; 
$this->load->view('footer'); 

,然後創建呈現主視圖的一個方法的基本控制器。子視圖的內容被加載並傳遞給主視圖。

庫/ MY_Controller.php

class MY_Controller extends Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function master_view($content_view, $data) 
    { 
     $data['content'] = $this->load->view($content_view, $data, true); 
     $this->load->view('master', $data); 
    } 
} 

然後延伸這個基本控制器,並從動作方法調用基控制器的方法。

控制器/ items.php

class Items extends MY_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 
     $data['items'] = $this->item_model->get_items(); 
     $this->master_view('items/index', $data); 
    } 
} 

它傾向於比裝載在每個視圖中的頁眉和頁腳更幹。

0

上面類似,我不喜歡這樣寫道:

$this->data['content']='your_content_view'; 
$this->load->vars($this->data); 
$this->load->view('template'); 
在模板視圖

然後:

$this->load->view('header'); 
$this->load->view($content); 
$this->load->view('footer'); 

視圖可以加載其他的意見,所以模板視圖加載一個標題視圖,然後您在內容中指定的視圖,然後是頁腳視圖。

使用這個想法,你可以邊欄視圖加載到內容等