未定义的变量footer_links

时间:2011-10-14 16:06:39

标签: php codeigniter

出于某种原因,我在视图上得到一个未定义的变量,但不太清楚为什么。当我执行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>&copy;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>&copy;COPYRIGHT 2010 ALL RIGHTS RESERVED</p>

</div>

1 个答案:

答案 0 :(得分:1)

我不熟悉您正在使用的模板引擎但是如何将变量传递给您的视图?你在控制器里面做print_r(当然这里会显示)还是查看?尝试将var_dump($footer_links); exit;作为footer.php文件中的第一行。