使用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',
),
),
),
...
如何进行测试'在导航下配置到我的视图助手而不是默认值?
答案 0 :(得分:1)
您正在加载另一个导航'树'。这个树必须独立设置,不幸的是,这需要几个步骤。我之前已经解释了如何解决此问题in this answer。
基本上,您必须创建第二个导航工厂,将工厂链接到导航服务名称,并在视图助手中使用该服务名称。