おそらく、同じ問題を抱えた同じアプリケーションからのこの例は、物事をより明確にします:
でnavigation.xml
:
...
<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>
...
対応するOverController
ものは次のようになります。
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 で場所を入れ替えると、2 番目の呼び出しは常に次のノードまたは最初の下位ノードであることがわかります。
Charles でトラフィックを確認すると、1 つの呼び出ししかディスパッチされていないため、JavaScript 呼び出しではないと考えています。
この例のビュー スクリプトには単純な HTML のみが含まれており、PHP や JS は一切含まれていません...
これで問題がより明確になることを願っています...