2017-09-04 127 views
-1

我是zend 2的新手,尝试在顶部导航中生成自定义动态类别菜单。如何在Zend 2中创建动态类别下拉菜单

对于类别我维护一个表格,它将从菜单中加载类别。我在谷歌搜索,但没有得到解决方案,可能完全满足我的目的。如果有人有解决方案,请帮助我。

仅供参考我上传了图片,我需要显示类别和子类别。

enter image description here

回答

1

创建ZF2导航从您的数据库,你需要创建一个导航厂家,并添加通过重写getPages()方法页,见下文。

use Zend\Navigation\Service\DefaultNavigationFactory; 

class MainNavigationFactory extends DefaultNavigationFactory 
{ 

    public function getPages(ContainerInterface $serviceLocator) 
    { 
     $categories = // get navigation categories from database 

     $configuration = $serviceLocator->get('config'); // get config 

     foreach ($categories as $category) { 
      $configuration['navigation'][$this->getName()][] = $category; // add category to navigation config 
     } 

     if (isset($configuration['navigation'][$this->getName()])) { // should always be true 
      $pages = $this->getPagesFromConfig($configuration['navigation'][$this->getName()]); 
      $this->pages = $this->preparePages($serviceLocator, $pages); 
     } 

     return $this->pages; 
    } 

} 

然后你需要在module.config.php中注册上述工厂。

'service_manager' => array(
    'factories' => array(
     'navigation' => 'Application\Navigation\Service\MainNavigationFactory', // you may need to change this path according to your application 
    ), 
), 

最后,在你的布局,你需要使你的导航与

<?php echo $this->navigation('navigation')->menu(); ?> 

您可能需要使用局部视图中navigation viewhelper实现菜单的所需布局按照您的图片。

请注意,这只是一个基本的实现,但它应该推动你在正确的方向。