2011-03-22 3 views
0

Zend_Navigation으로 이동 경로가 표시되는 데 문제가 있습니다.Zend Navigation (breadcrumbs)이 표시되지 않습니다.

DB에서 기사를 쿼리하는 매개 변수를 사용하는 단일 컨트롤러가 있습니다. 따라서 "articles/view/id/3"을 가리키면 id가 3 인 기사를 반환합니다. 문제는이 논리 아래에서 빵 부스러기가 작동한다는 것입니다. 이상적으로, "articles/view/id/3"으로 갈 때 빵 부스러기를 사용하고 싶습니다. "Articles> Article_Name"

내 코드는 내비게이션과 하위 네비게이션을 렌더링합니다. 현재 빵 부스러기에서 실패합니다. 아무것도 표시하지 않습니다. 여기

내 코드입니다 :

1)처럼 보이는 XML 형식으로 사이트의 탐색 :) 레이아웃에서 (

<?xml version="1.0"?> 
<zend-config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/"> 
    <nav> 
    <articles> 
     <label>Articles</label> 
     <uri>/</uri> 
     <order>1</order> 
     <active>1</active> 
     <visible>1</visible> 
     <pages> 
     <article_one> 
      <label>Article One</label> 
      <uri>/articles/view/id/81e728d9d4c2f636f067f89cc14862c</uri> 
      <order>1</order> 
      <active>1</active> 
      <visible>1</visible> 
     </article_one> 
     </pages> 
    </articles> 
    </nav> 
</zend-config> 

2) 탐색 :

$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav'); 
$nav = new Zend_Navigation($config); 
$view = new Zend_View(); 
$view->navigation($nav); 
echo $view->navigation()->menu(); 

3) 빵 부스러기 (기사 컨트롤러에서) :

public function init() { 
     $uri = $this->_request->getPathInfo(); 
     $activeNav = $this->view->navigation()->findByUri($uri); 
     $activeNav->class = "selected"; 
     $activeNav->active = true; 
    } 
() 레이아웃에서

4) 빵 부스러기 : 사전에 어떤 도움

//Doesn't display anything[/B] 
echo $view->navigation()->breadcrumbs()->setLinkLast(true); 

감사합니다!

+2

breadcrumps가 uri와 호환되는지 확실하지 않습니다. 귀하의 탐색을 위해 컨트롤러 및 액션 태그를 지정해야한다고 생각합니다. – Marcin

+0

고맙습니다. 그게 다야! –

답변

1

어떤 매개 변수 URI에 대해?
매개 변수는 어디에 있습니까? controller & action?

여기 http://framework.zend.com/manual/ru/zend.view.helpers.html 또는 소스 코드를 Zend/View/Helper/Navigation/Breadcrumbs.php

+0

감사합니다! navigation.xml 파일에 컨트롤러, 액션 및 매개 변수를 지정해야했습니다. –

0

볼 수 있습니다 그냥이 지적, Actualli의 빵 부스러기는 URI와 함께 작동 여러분.

문제는 $this->view->navigation()->findByUri($uri)이 null 개체를 반환한다는 것입니다. 부트 스트랩에 설정되어 있어도 보이지 않기 때문입니다.

부트 스트랩 파일에 Zend_Registry::set('Zend_Navigation', $navigation);을 추가하면 문제가 해결됩니다.

건배

0

시도 URL에 /를 추가. 나 역시 같은 문제가 있었다.