Неопределенная переменная footer_links - PullRequest
0 голосов
/ 14 октября 2011

По какой-то причине я получаю неопределенную переменную в представлении и не совсем уверен, почему. Когда я делаю 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>&copy;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>&copy;COPYRIGHT 2010 ALL RIGHTS RESERVED</p>

</div>

1 Ответ

1 голос
/ 14 октября 2011

Я не знаком с механизмом шаблонов, который вы используете, но как вы передаете свою переменную в ваше представление?Вы делаете print_r внутри контроллера (конечно, здесь он покажет) или просматриваете?Попробуйте указать var_dump($footer_links); exit; в качестве первой строки в файле footer.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...