0
使用ZF2我有一個看起來像這樣的視圖助手:如何將導航配置導入到我的視圖助手中?
class Navbar extends AbstractHelper implements ServiceLocatorAwareInterface {
public function setServiceLocator(ServiceLocatorInterface $serviceLocator) {
$this->serviceLocator = $serviceLocator;
return $this;
}
public function getServiceLocator() {
return $this->serviceLocator;
}
public function __invoke($container) {
$partial = array('partial/subNav.phtml','thisMeansNothing');
//github.com/zendframework/zf2/issues/3457
$navigation = $this->getServiceLocator()->get('navigation');
$navigation($container)->menu()->setPartial($partial);
return $navigation->menu()->render();
}
}
這個作品真的很適合我,因爲我可以做我的看法echo $this->navbar('navigation');
。
在我模塊的module.config.php我有這樣的:
...
'navigation' => array(
'default' => array(
array(
'label' => 'eeee',
'route' => 'link',
),
array(
'label' => 'sdlfkj',
'route' => 'link',
),
array(
'label' => 'sdlkfj',
'route' => 'link',
),
),
'test' => array(
array(
'label' => 'aaaa',
'route' => 'link',
),
array(
'label' => 'bbbbb',
'route' => 'link',
),
),
),
...
我如何拉動下導航「測試」配置到我的視圖助手,而不是默認?
jeeze那種有點臭。所以在我完成所有這些之後,我應該可以在我的視圖中調用它:echo $ this-> navbar('secondary_navigation_tree');對?另外,請注意,您是否發現zf2開發人員實現像這樣的自定義導航,或者大多數情況下只使用像spiffy這樣的社區模塊? – red888
是的,如果您創建工廠並將其鏈接到您的模塊配置中,則它可以像這樣工作。我們從不使用漂亮的導航,因爲還有其他問題。我們沒有很多導航(1 - 3),因此很容易爲完整的項目編寫一次。 –
嗯我不能在我的代碼中做這個工作。我將所有東西都設置好了,然後試着改變視圖中的代碼以echo $ this-> navbar('test'),然後嘗試將幫助程序中的代碼更改爲$ this-> getServiceLocator() - > get('test'),我得到:「Zend \ View \ HelperPluginManager :: get無法獲取或創建一個實例進行測試」 – red888