-1
我是zend 2的新手,尝试在顶部导航中生成自定义动态类别菜单。如何在Zend 2中创建动态类别下拉菜单
对于类别我维护一个表格,它将从菜单中加载类别。我在谷歌搜索,但没有得到解决方案,可能完全满足我的目的。如果有人有解决方案,请帮助我。
仅供参考我上传了图片,我需要显示类别和子类别。
我是zend 2的新手,尝试在顶部导航中生成自定义动态类别菜单。如何在Zend 2中创建动态类别下拉菜单
对于类别我维护一个表格,它将从菜单中加载类别。我在谷歌搜索,但没有得到解决方案,可能完全满足我的目的。如果有人有解决方案,请帮助我。
仅供参考我上传了图片,我需要显示类别和子类别。
创建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实现菜单的所需布局按照您的图片。
请注意,这只是一个基本的实现,但它应该推动你在正确的方向。