MVC для боковой панели нижнего колонтитула в codeigniter - PullRequest
2 голосов
/ 09 ноября 2009

Я использую codeigniter. У меня есть footer_view.php, header_view.php и другие файлы просмотра php для таких страниц, как aboutus, contactus и т.д. переменная о нас рассматривается как:

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

До этого момента все в порядке, но когда мне нужно получить данные из базы данных в нижнем колонтитуле, как я буду использовать CodeIgniter Way ?

Если я создаю footer_model, я не могу сделать view('footer/'), потому что на самом деле это часть страницы, а не сама страница: /

Ответы [ 2 ]

3 голосов
/ 10 ноября 2009

Вы можете использовать $ 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;?>
?>

Ваш футер_вид

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

Нет необходимости в какой-либо библиотеке шаблонов ...

1 голос
/ 09 ноября 2009

Я написал в блоге об этом 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...