По какой-то причине я получаю неопределенную переменную в представлении и не совсем уверен, почему. Когда я делаю print_r переменной footer_links, она выглядит нормально, как таковая:
Array ([0] => объект stdClass ([link_name] => Home [short_name] => index) 1 => объект stdClass ([link_name] => О нас [short_name] => about-us) [2] => объект stdClass ([link_name] => карта сайта [short_name] => карта сайта) [3] => объект stdClass ([link_name] => Contact-Us [short_name] => contact -us) [4] => объект stdClass ([link_name] => новостная лента [short_name] => новостная лента))
Я знаю, что не передаю переменную, но когда я попробовал ее со сборкой, она не работала. Не знаю, зачем мне это передавать. Я использую библиотеку шаблонов Фила Стерджена.
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: footer_links
Filename: v1/footer.php
Line Number: 4
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: v1/footer.php
Line Number: 4
Контроллер:
$activeTemplate = $this->kow->getTemplate();
$siteInfo = $this->kow->getSiteTitleAndSlogan();
$footer_links = $this->kow->getFooterNav();
$this->template
->title($siteInfo[0]->site_name,$siteInfo[0]->site_slogan)
->prepend_metadata('<link rel="stylesheet" type="text/css" href="http://www.kansasoutlawwrestling.com/assets/css/'.$activeTemplate[0]->short_name.'.css" />')
->set_partial('header', $activeTemplate[0]->short_name.'/header')
->set_partial('footer', $activeTemplate[0]->short_name.'/footer')
->build('kow');
Вид:
<div id="footer">
<ul>
<?php foreach($footer_links as $row)
{
?>
<li><a><?php echo $row->link_name; ?></a></li>
<?php
}
?>
</ul>
<p>©COPYRIGHT 2010 ALL RIGHTS RESERVED</p>
</div>
EDIT:
Я нашел этот вопрос о стековом потоке, который является той же самой сделкой, с которой я работаю.
Создание динамических связей через БД и CI
Контроллер:
$activeTemplate = $this->kow->getTemplate();
$siteInfo = $this->kow->getSiteTitleAndSlogan();
$footer_links['rows'] = $this->kow->getFooterNav();
$this->template
->title($siteInfo[0]->site_name,$siteInfo[0]->site_slogan)
->prepend_metadata('<link rel="stylesheet" type="text/css" href="http://www.kansasoutlawwrestling.com/assets/css/'.$activeTemplate[0]->short_name.'.css" />')
->set('footer', $footer_links)
->set_partial('header', $activeTemplate[0]->short_name.'/header')
->set_partial('footer', $activeTemplate[0]->short_name.'/footer')
->build('kow');
Модель:
function getFooterNav()
{
$this->db->select('site_menu_structures_links.link_name,site_menu_structures_links.short_name');
$this->db->from('site_menu_structures_links');
$this->db->join('site_menu_structures', 'site_menu_structures.id = site_menu_structures_links.menu_structure_id');
$this->db->where('site_menu_structures.short_name', 'footernav');
$query = $this->db->get();
return $query->result_array();
}
Просмотр:
<div id="footer">
<ul>
<?php foreach($rows as $row)
{
?>
<li><a><?php echo $row->link_name; ?></a></li>
<?php
}
?>
</ul>
<p>©COPYRIGHT 2010 ALL RIGHTS RESERVED</p>
</div>