我是zend 2的新手,并尝试在顶部导航中生成自定义动态类别菜单。
对于类别我正在维护一个表,它将在菜单中加载类别。我在谷歌搜索但没有得到可能完全填满我的目的的解决方案。如果有人有解决方案,请帮助我。
作为参考,我已经上传了我需要显示类别和子类别的图像。
答案 0 :(得分: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中使用局部视图,以根据您的图片实现所需的菜单布局。
请注意,这只是一个基本的实施方案,但它应该让你朝着正确的方向前进。