在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