我使用codeigniter。我有关于aboutus,contactus等页面的footer_view.php,header_view.php和其他视图php文件...例如关于我们页面,我为db动作创建模型,而不是创建一个控制器来获取db变量并发送变量到关于我们的视图:
$this->load->view('aboutus/',$data);
在此之前一切都很好,但是当我需要从页脚数据库获取数据时,我将如何在 CodeIgniter方式中使用?
如果我创建了一个footer_model,我无法创建view('footer/')
,因为它实际上是页面的一部分,而不是页面本身:/
答案 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);