出于某种原因,我在视图上得到一个未定义的变量,但不太清楚为什么。当我执行footer_links变量的print_r时,它显示正常:
数组([0] => stdClass对象([link_name] =>主页[short_name] =>索引)1 => stdClass对象([link_name] =>关于我们[short_name] ] => about-us)[2] => stdClass对象([link_name] =>网站地图[short_name] =>网站地图)[3] => stdClass对象([link_name] =>联系我们[short_name] => contact-us)[4] => stdClass对象([link_name] =>新闻Feed [短名称] =>新闻提要))
我知道我没有传递变量但是当我尝试使用构建它时它不起作用。不知道我为什么要传递它。我正在使用Phil Sturgeon的模板库。
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>
编辑:
我发现这个stackoverflow问题与我正在处理的事务是一样的。 Creating Dynamic Links Through DB and 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>
答案 0 :(得分:1)
我不熟悉您正在使用的模板引擎但是如何将变量传递给您的视图?你在控制器里面做print_r
(当然这里会显示)还是查看?尝试将var_dump($footer_links); exit;
作为footer.php文件中的第一行。