2011-10-14 2 views
0

어떤 이유로 뷰에 정의되지 않은 변수가 있는데 이유가 확실하지 않습니다. footer_links 변수의 print_r을 수행하면 다음과 같이 표시됩니다.정의되지 않음 변수 footer_links

배열 ([0] => stdClass 객체 ([link_name] => 집 [short_name] => 인덱스) 1 => stdClass 객체 [link_name] => About us [short_name] => about-us) [2] => stdClass 객체 ([link_name] => 사이트 맵 [short_name] => 사이트 맵) [3] => stdClass 객체 ([link_name ] => 연락처 - 우리 [짧은 이름] => 연락 - 우리) [4] => stdClass 객체 ([link_name] => 뉴스 피드 [short_name] => 뉴스 피드))

나는 알고있다. 변수를 전달했지만 빌드를 시도했을 때 작동하지 않았습니다. 필자가 필리스 스터 전 (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> 

편집 : 난 거래의 같은 종류가이 유래 질문을 발견

함께 일해. 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

나는 익숙하지 해요 템플릿 엔진을 사용하고 있지만 변수를 뷰에 어떻게 전달하고 있습니까? 컨트롤러 내부에서 print_r을하고 있습니까 (물론 여기에 표시됩니다) 또는 보시겠습니까? footer.php 파일의 첫 번째 줄에 var_dump($footer_links); exit;을 넣으십시오.

+0

내 게시물이 업데이트되었습니다. –

+0

해당 질문에 답변하는 사람의 첫 번째 코드 블록을 잘 살펴보십시오. 나는 그것이 당신이 잘못하고있는 것이라고 믿습니다. 지금 작동합니까? 오류가있는 경우 오류가 있으면 변경 사항을 게시하십시오. – Spyros