在linked to post的解决方案,不影响导航,因为Zend_Navigation_Page_Mvc使用Zend_Controller_Action_Helper_Url而不是Zend_View_Helper_Url。你必须重写Zend_Controller_Action_Helper_Url :: url(),然后add your helper to the helper broker它会影响Zend_Navigation。
我在执行中,我使用了 '_fragment' 选项/参数,以帮助避免名称冲突:
require_once('Zend/Controller/Action/Helper/Url.php');
class My_Controller_Action_Helper_Url extends Zend_Controller_Action_Helper_Url
{
public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
{
$fragment = '';
if(isset($urlOptions['_fragment'])) {
$fragment = '#' . $urlOptions['_fragment'];
unset($urlOptions['_fragment']);
}
return parent::url($urlOptions, $name, $reset, $encode) . $fragment;
}
}
然后,我用它来配置Zend_Navigation在XML文件中,我创建了一个_fragment PARAM:
<page>
<id>pageId</id>
<label>Page Label</label>
<module>foo</module>
<params>
<_fragment>bar</_fragment>
</params>
<route>default</route>
</page>
“但这不是我寻找的优雅解决方案” - 问题是什么? – 2011-05-10 23:21:47
@jakenoble - 我想在Zend_Navigation_Page_Mvc页面上使用片段标识符 – Sonny 2011-05-11 13:25:25
想要使用带有Zend_Navigation_Page_Mvc的片段标识符吗? – 2011-05-11 14:58:58