2009-11-09 93 views
2

我使用codeigniter。我有footer_view.php,header_view.php和其他視圖的PHP文件,如aboutus,contactus等頁面...例如對於我們的頁面,我創建數據庫操作模型,比我創建一個控制器來獲取數據庫變量和發送變量關於我們查看:在codeigniter的頁腳 - 側邊欄MVC

$this->load->view('aboutus/',$data); 

一切都很好,直到這一點,但是當我需要從分貝在頁腳獲取數據,我將如何在笨方法使用?

如果我創建一個footer_model,我不能讓view('footer/'),因爲它實際上是,如果頁面,而不是頁面本身的一部分:/

回答

1

我寫了一篇博客文章中針對此http://joshhighland.com/blog/2008/11/09/how-i-do-layouts-and-views-in-codeigniter/

基本上,你要加載所有視圖在控制器中需要的所有數據。我使用一組數據元素,然後將其傳遞給佈局視圖。我的博客文章更多地解釋了這一點,並展示了更多細節。這是我的控制器的示例。

$this->load->model('search'); 

$lastest_albums = $this->search->last_n_albumsAdded(10); 
$popular_songs = $this->search->popular_n_songs(10); 
$featuredAlbums = $this->search->getFeaturedAlbums(); 

$body_data['featured'] = $featuredAlbums; 
$body_data['newest'] = $lastest_albums; 
$body_data['popular'] = $popular_songs; 

$layout_data['content_body'] = $this->load->view(’home/homePage’, $body_data, true); 

$this->load->view('layouts/main', $layout_data); 
3

您可以使用$ this-> load-> vars($ data);

這將使所有數據可用於所有視圖,footer_view.php,header_view.php和任何其他視圖。

​​

您視圖可以和將訪問像這樣的數據:

你的 「主」 視圖

<?php 
// your_view.php 
// this can access data 
$this->load->view('header_view'); 
<?php foreach ($your_info as $r):?> 
<?php echo $r->first_name;?> 
<?php echo $r->last_name;?> 
<?php endforeach;?> 
$this->load->view('footer_view'); 
?> 

你header_view

<?php 
// header_view.php 
<?php echo $your_latest_info->site_name;?> 
?> 

你footer_view

<?php 
// footer_view.php 
<?php foreach ($your_setting_info as $setting):?> 
<?php echo $setting->pages;?> 
<?php endforeach;?> 
?> 

不需要任何模板庫...