codeigniter上的footer-header-sidebar的MVC

时间:2009-11-09 11:55:10

标签: php codeigniter templates

我使用codeigniter。我有关于aboutus,contactus等页面的footer_view.php,header_view.php和其他视图php文件...例如关于我们页面,我为db动作创建模型,而不是创建一个控制器来获取db变量并发送变量到关于我们的视图:

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

在此之前一切都很好,但是当我需要从页脚数据库获取数据时,我将如何在 CodeIgniter方式中使用?

如果我创建了一个footer_model,我无法创建view('footer/'),因为它实际上是页面的一部分,而不是页面本身:/

2 个答案:

答案 0 :(得分:3)

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

这将使所有视图,footer_view.php,header_view.php和任何其他视图都可以使用所有数据。

$data['your_info'] = $this->user_model->get_info();
$data['your_latest_info'] = $this->user_model->get_latest_info();
$data['your_settings_info'] = $this->user_model->get_settings_info();

$this->load->vars($data);

$this->load->view('your_view');

您可以查看可以并将访问数据,如下所示:

您的“主要”观点

<?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;?>
?>

不需要任何模板库......

答案 1 :(得分: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);