하위 메뉴 렌더링 :이처럼 내 부트 스트랩 I 설정에서젠드 탐색 - 나는 다음과 같은 XML 파일에 내 모든 페이지를 정의
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<dashboard>
<label>Dashboard</label>
<module>default</module>
<controller>dashboard</controller>
<action>index</action>
<title>Die Schaltzentrale</title>
</dashboard>
<user>
<label>User</label>
<module>default</module>
<controller>user</controller>
<action>index</action>
<title>Verwaltung der Benutzer</title>
<userList>
<module>default</module>
<controller>user</controller>
<action>index</action>
<label>Userliste anzeigen</label>
</userList>
<newUser>
<label>User anlegen</label>
<module>default</module>
<controller>user</controller>
<action>new</action>
</newUser>
<editUser>
<label>User bearbeiten</label>
<module>default</module>
<controller>user</controller>
<action>edit</action>
</editUser>
</user>
</nav>
</configdata>
내 탐색 :
는protected function _initNavigation()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml','nav');
$view = $layout->getView();
$navigation = new Zend_Navigation($config);
$view->navigation($navigation);
Zend_Registry::set('Zend_Navigation',$navigation);
}
이 설정이 날 수 있습니다 내 메인 메뉴를 다음 줄로 렌더링하십시오 :
$partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);
echo $this->navigation()->menu()->render();
지금까지 그렇게 좋았습니다. 내 문제는 이제 특정 하위 메뉴를 렌더링하는 것입니다. 사용자 컨트롤러의 모든 동작으로 메뉴를 렌더링하려고한다고 가정 해 봅시다. 나는 다음과 같이 렌더링하려했습니다 :
$page = $this->navigation()->findOneBy('controller','user');
echo $this->navigation()->menu()->renderMenu($page);
출력이 없습니다. 또한 minDepth 또는 maxDepth 옵션을 성공하지 않고 설정하여 출력을 얻으려고했습니다. 누구든지 나를 위해 뒷다리를 가지고 있습니다. 어떻게 작동시킬 수 있습니까?
감사합니다. 이 자습서 [link] (http://www.brandonsavage.net/making-zend_navigation-useful/)에서 findOneBy ('컨트롤러') 접근 방식을 발견했습니다. 컨트롤러 대신 레이블을 검색하면 실제로 출력을 얻습니다. 그러나 나는 단지 주 메뉴를 얻는다. Zend가 XML 구조를 올바르게 읽지 못하는 것 같습니다. – Benni
xml이 잘못되었을 수 있습니다. 나는 나의 대답을 업데이트했다. 수정 된 xml을 사용해보십시오. –
귀하의 제안에 따라 결과물을 얻을 수 있습니다. 하지만 여전히 문제가 하나 있습니다. 두 개의 페이지가 더있는 '장치'라는 컨트롤러가 하나 더 있다고 가정 해 봅시다. 이제 내 하위 메뉴를 렌더링하면 깊이가 1 인 모든 페이지가 포함 된 메뉴가 나타납니다. 그러나 특정 컨트롤러에 의해 분리되지는 않습니다. 그래서 나는 특정 라벨을 검색하지만 사용자와 장치의 모든 링크가있는 메뉴를 얻습니다. 내 XML에는 여전히 문제가있는 것으로 보인다. – Benni