2009-11-09 82 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;?> 
?> 

不需要任何模板库...