Php 如何在Zend 2中创建动态类别下拉菜单
我是zend 2的新手,尝试在顶部导航中生成自定义动态类别菜单 对于类别,我维护一个表,从中可以加载菜单中的类别。我在谷歌搜索,但并没有得到解决方案,可能完全满足我的目的。如果有人有解决办法,请帮助我 作为参考,我上传了我需要显示类别和子类别的图像Php 如何在Zend 2中创建动态类别下拉菜单,php,zend-framework,zend-framework2,Php,Zend Framework,Zend Framework2,我是zend 2的新手,尝试在顶部导航中生成自定义动态类别菜单 对于类别,我维护一个表,从中可以加载菜单中的类别。我在谷歌搜索,但并没有得到解决方案,可能完全满足我的目的。如果有人有解决办法,请帮助我 作为参考,我上传了我需要显示类别和子类别的图像 要从数据库创建ZF2导航,您需要创建一个导航工厂,并通过覆盖getPages()方法添加页面,请参见下文 use Zend\Navigation\Service\DefaultNavigationFactory; class MainNavigat
要从数据库创建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(); ?>
您可能需要在中使用局部视图,以根据图片实现所需的菜单布局
请注意,这只是一个基本的实现,但它应该将您推向正确的方向