2011-01-27 6 views
4

편집 : 문제가 인해 젠드 경로를 탐색 내가 XML 파일을 사용하고 업데이트젠드 naviagtion 인해 젠드 경로에 작동하지

을 확인하시기 바랍니다 기인했다 . 난 내 편집 페이지에서 오전 때

편집 : 다음 코드는 모두 어떤 메뉴 링크를하지 않는, layout.phtml 파일

$config = new Zend_Config_Xml(APPLICATION_PATH.'/configs/adminnav.xml', 'nav'); 
$container = new Zend_Navigation($config); 
$this->navigation()->setContainer($container); 
echo $this->navigation(); 

에서입니다. 모든 항목은 메뉴 항목의/admin/controller/edit/everywhere입니다. 어떤 생각?

id가 입력되지 않으면 생성 및 오류가 발생합니다. 그러나 추가하고 목록 방법은

$frontcontroller = Zend_Controller_Front::getInstance(); 
    $router = $frontcontroller->getRouter('router'); 

    //add route for edit page so that pageid is not displayed in the url 
    $router->addRoute(
     'edit-page', 
     new Zend_Controller_Router_Route('admin/page/edit/:pageid', array(
      'module' => 'admin', 
      'controller' => 'page', 
      'action' => 'edit', 
      'pageid' => 'pageid' 
     )) 
    ); 

UPDATE :

<editdest> 
    <label>edit destination</label> 
    <module>admin</module> 
    <controller>destination</controller> 
    <action>edit</action> 
    <route>12</route>  
</editdest> 

에 잘

UPDATES :: bootstrap.php에 편집 작업에 대한

<?xml version="1.0"?> 
<config> 
<nav> 
    <home> 
     <label>home</label> 
     <uri>#</uri> 
     <pages> 
      <home> 
       <label>home</label> 
       <module>admin</module> 
       <controller>home</controller> 
       <action>index</action> 
      </home> 
      <help> 
       <label>help</label> 
       <module>admin</module> 
       <controller>home</controller> 
       <action>help</action> 
      </help> 
     </pages> 
    </home> 
    <page> 
     <label>pages</label> 
     <uri>#</uri> 
     <pages> 
      <static> 
       <label>static pages</label> 
       <module>admin</module> 
       <controller>page</controller> 
       <action>index</action> 
      </static> 
      <editpage> 
       <label>static pages</label> 
       <module>admin</module> 
       <controller>page</controller> 
       <action>edit</action>   
      </editpage> 
     </pages> 
    </page> 

    <destination> 
     <label>destinations</label> 
     <uri>#</uri> 
     <pages> 
      <list> 
       <label>list all</label> 
       <module>admin</module> 
       <controller>destination</controller> 
       <action>index</action> 
      </list> 
      <featured> 
       <label>featured</label> 
       <module>admin</module> 
       <controller>destination</controller> 
       <action>featured</action>     
      </featured> 
      <add> 
       <label>add destination</label> 
       <module>admin</module> 
       <controller>destination</controller> 
       <action>add</action> 
      </add> 
      <editdest> 
       <label>edit destination</label> 
       <module>admin</module> 
       <controller>destination</controller> 
       <action>edit</action>   
      </editdest> 
     </pages> 
    </destination> 

    <tours>   
    <label>tours</label> 
     <uri>#</uri> 
     <pages> 
      <list> 
       <label>list tours</label> 
       <module>admin</module> 
       <controller>tour</controller> 
       <action>index</action> 
      </list> 
      <featured> 
       <label>featured tours</label> 
       <module>admin</module> 
       <controller>tour</controller> 
       <action>featured</action> 
      </featured> 
      <add> 
       <label>add tours</label> 
       <module>admin</module> 
       <controller>tour</controller> 
       <action>add</action> 
      </add> 
      <edittour> 
       <label>edit tours</label> 
       <module>admin</module> 
       <controller>tour</controller> 
       <action>add</action> 
      </edittour> 
     </pages> 
    </tours> 

    <hotels>    
    <label>hotels and resort</label> 
     <uri>#</uri> 
     <pages> 
      <list> 
       <label>list hotel</label> 
       <module>admin</module> 
       <controller>hotel</controller> 
       <action>index</action> 
      </list> 
      <add> 
       <label>add hotel</label> 
       <module>admin</module> 
       <controller>hotel</controller> 
       <action>add</action> 
      </add> 
      <edithotel> 
       <label>add hotel</label> 
       <module>admin</module> 
       <controller>hotel</controller> 
       <action>add</action> 
      </edithotel> 
     </pages> 
    </hotels> 

    <message>   
     <label>message</label> 
     <uri>#</uri> 
     <pages> 
      <all> 
       <label>all message</label> 
       <module>admin</module> 
       <controller>message</controller> 
       <action>index</action> 
      </all> 
      <contactus> 
       <label>contact</label> 
       <module>admin</module> 
       <controller>message</controller> 
       <action>contact</action> 
      </contactus> 
      <inquiry> 
       <label>inquiry</label> 
       <module>admin</module> 
       <controller>message</controller> 
       <action>inquiry</action> 
      </inquiry> 
      <reservation> 
       <label>reservation</label> 
       <module>admin</module> 
       <controller>message</controller> 
       <action>reservation</action> 
      </reservation> 
     </pages> 
    </message> 

    <advertisement>   
     <label>advertisement</label> 
     <uri>#</uri> 
     <pages> 
      <list> 
       <label>list ads</label> 
       <module>admin</module> 
       <controller>advertisement</controller> 
       <action>index</action> 
      </list> 
      <add> 
       <label>add ads</label> 
       <module>admin</module> 
       <controller>advertisement</controller> 
       <action>add</action> 
      </add> 
      <editad> 
       <label>edit ads</label> 
       <module>admin</module> 
       <controller>advertisement</controller> 
       <action>edit</action> 
      </editad> 
     </pages> 
    </advertisement> 

    <setting>   
     <label>settings</label> 
     <uri>#</uri> 
     <pages> 
      <view> 
       <label>view</label> 
       <module>admin</module> 
       <controller>setting</controller> 
       <action>view</action> 
      </view> 
      <account> 
       <label>account setting</label> 
       <module>admin</module> 
       <controller>setting</controller> 
       <action>account</action> 
      </account> 
      <site> 
       <label>site setting</label> 
       <module>admin</module> 
       <controller>setting</controller> 
       <action>site</action> 
      </site> 
     </pages> 
    </setting> 
</nav> 
</config> 

UPDATE : 경로를 작동

오류 :

Fatal error: Zend_Controller_Router_Exception: Route 12 is not defined in 
/usr/share/php/libzend-framework-php/Zend/View/Helper/Navigation/HelperAbstract.php 
on line 522 
+0

내가 알고있는 것처럼이 탐색은 다음과 같습니다 각 페이지에 다른 편집 링크를해야하는 경우

$router->addRoute( 'edit-page', new Zend_Controller_Router_Route('admin/page/edit/:pageid', array( 'module' => 'admin', 'controller' => 'destination', 'action' => 'edit', 'pageid' => 'pageid' )) ); <editdest> <label>edit destination</label> <module>admin</module> <controller>destination</controller> <action>edit</action> <route>edit-page</route> <params> <pageid>12</pageid> </params> </editdest> 

, 당신은 즉, 동적으로 탐색 컨테이너에 PARAMS을 업데이트해야 추가 및 목록 작업에서 작동하지만 편집 동작에서만 작동하지 않습니까? 메뉴가 모든 작업 (예 : 수정, 추가, 추가)에 대해 동일합니까? 추가 코드 스 니펫 (예 : 편집 동작에서 동작 (동작하기 때문에), XML 파일을 추가하십시오. – Marcin

+0

우리에게 XML을 보여줘. 질문의 서식을 지정하십시오. 왜 대문자를 쓰지 않는거야? – takeshin

+0

@Marcin 모든 동작에 대해 메뉴가 동일합니다. 레이아웃 파일 –

답변

3

정적 경로가있는 경우 모든 탐색 페이지에서 경로 이름을 설정해야합니다. 이는 탐색보기 도우미가 URL보기 도우미를 사용하여 링크를 만들기 때문입니다.

경로 이름이없는 경우 현재 경로를 사용합니다.

현재 경로가 정적 경로 인 경우, 어떤 매개 변수가 던져 지더라도 하나의 URL로만 해결됩니다.

+0

예 경로가 있지만 예기치 않은 정적이라고 생각합니다. 위의 편집을 참조하십시오. 어쨌든 –

+1

@explorex를 참조하십시오. xml 구성의 각 탐색 페이지에 경로 이름을 설정해보십시오. 다만 기본값 인 Phil

+0

@Phil 내가 제안한대로 시도했지만 오류가 발생했습니다. –

1

$router->addRoute에 정의한 경로를 사용해야합니다.

이 있어야한다 :

// (pseudocode, not tested) 
$this->navigation()->getContainer()->findOneByLabel('edit destination')->params->pageid = 12 
+0

나는 길 때문에 나는 오류라고 알았다. 경로 업데이트를 확인하십시오. 당신은 어떤 제안이 있다면 그것은 매우 인정받을 것입니다 –

+0

@explorer 귀하의 실제 질문은 무엇입니까? – takeshin