导航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>
...
每次调用/ mine / registration / index操作时,/ mine / registration / doregistration操作都会被触发(调试时可能需要一两秒)
/ mine / registration / index确实正确显示。
整个应用程序中都会出现此问题。 当我们更改第二个(或子)页面的操作时,将执行此特定操作。
这是Zend中的已知问题吗?以前有人有过这个问题吗?
答案 0 :(得分:0)
也许这个例子,来自同一个应用程序,同样的问题,使事情更清楚:
在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
并添加了一些额外的功能(日志记录,登录用户的身份,......)。这个自定义类不能成为我们问题的原因,如果我们不使用is仍会出现。
在此示例中,如果我们转到default/over/wat
操作,应用程序也将调用以下节点default/over/wie
。如果我们在XML中切换位置,则会发现第二个调用始终是以下或第一个基础节点。
我们不认为他们是一个JavaScript调用,因为如果我们检查我们与Charles的流量,那么只有一个调用被调度。
此示例的视图脚本仅包含简单的HTML,无论是PHP还是JS ......
希望这会使我们的问题更加明确......
答案 1 :(得分:0)
啊哈! 我们找到了问题的原因:链接导航助手 http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.navigation.links
我们仍然没有真正的解决方案,但这些头部链接并不重要。我们不再使用它了。