2012-05-03 2 views
1

에서 트리거, 여기에 조각입니다 :여러 작업을 우리는 탐색 XML에 이상한 문제가 navigation.xml

... 
<registration> 
     <label>Registration</label> 
     <module>mine</module> 
     <controller>registration</controller> 
     <pages> 
      <register> 
      <label>Register</label> 
      <module>mine</module> 
      <controller>registration</controller> 
      <action>doregistration</action> 
      </register> 
     </pages> 
</registration> 
... 

우리는/내/등록/index 액션을 호출 할 때마다,은/내/등록/(디버깅이 2 ~ 2 초 걸릴 수 있습니다)

/mine/registration/index가 올바르게 표시됩니다.

이 문제는 전체 응용 프로그램에서 발생합니다. 두 번째 (또는 하위) 페이지의 동작을 변경하면이 특정 동작이 실행됩니다.

젠드의 알려진 문제입니까? 누구든지 전에이 문제가 있었나요? 이 예는, 같은 응용 프로그램에서 같은 문제로, 더 명확 일하게 어쩌면

+0

이것은 정말 어려운 질문입니다. 여러 가지 일 수 있습니다. 그 페이지가 성공적으로로드 된 후 일어나는 경우 귀하의 자바 스크립트를 찾고 제안 거라고. 당신이보기 스크립트 내에서 다른 행동을 부르지 않았습니까? –

+0

우리는 아무데도 아무 것도하지 않습니다. 실제로 우리는 액션 이름으로 프로젝트 검색을 수행했으며, 탐색 XML에서의 발생을 제외하고는 거의 아무것도 발견하지 못했습니다. 그것이 XML이 어떻게 든 관련되어 있음을 발견 한 것입니다. 자바 스크립트없이 응용 프로그램을 실행하면 (파이어 폭스에서 사용 불가) 동일한 동작을 보입니다. – SimonV

답변

0

:에서

navigation.xml :

해당 OverController은 다음과 같습니다
... 
<over> 
    <label>Over ons</label> 
    <module>default</module> 
    <controller>over</controller> 
    <action>index</action> 
    <pages> 
     <wat> 
      <label>Wat?</label> 
      <module>default</module> 
      <controller>over</controller> 
      <action>wat</action> 
     </wat> 
     <wie> 
      <label>Wie?</label> 
      <module>default</module> 
      <controller>over</controller> 
      <action>wie</action> 
     </wie> 
     <contact> 
      <label>Contact</label> 
      <module>default</module> 
      <controller>over</controller> 
      <action>contact</action> 
     </contact> 
     <faq> 
      <label>Help</label> 
      <module>default</module> 
      <controller>over</controller> 
      <action>faq</action> 
     </faq> 
    </pages> 
</over> 
... 

:

class Default_OverController extends Custom_Controller_Action_EhcAction 
{ 

public function indexAction() 
{ 
    return $this->render('index'); 
} 

public function contactAction() 
{ 
    return $this->render('contact'); 
} 

public function wieAction() 
{ 
    return $this->render('wie'); 
} 

public function watAction() 
{ 
    return $this->render('wat'); 
} 

public function faqAction() 
{ 
    return $this->render('faq'); 
} 
} 

우리가 볼 수 있듯이 컨트롤러는 Custom_Controller_Action_EhcAction까지 확장됩니다. 이것은 Zend_Controller_Action을 확장하고 몇 가지 추가 기능 (로그인, 로그인 한 사용자의 ID 등)을 추가하는 맞춤 클래스입니다. 이 사용자 정의 클래스는 우리 문제의 원인이 될 수 없으며, is를 사용하지 않으면 여전히 발생합니다.

이 예제에서 default/over/wat 동작으로 가면 응용 프로그램은 다음 노드 default/over/wie을 호출합니다. XML에서 작업 영역을 전환하면 두 번째 호출이 항상 다음 또는 첫 번째 기본 노드라는 것을 알 수 있습니다.

우리는 Charles 's와의 트래픽을 확인하면 JavaScript 호출이 1 회만 호출되기 때문에 JavaScript 호출이라고는 생각하지 않습니다. 이 예제의

뷰 스크립트는 ...

는 희망이 우리의 문제가 더 명확하게됩니다 ...