从zendframework 2布局中的数据库下拉菜单

时间:2014-09-03 16:49:29

标签: layout zend-framework2

layout.phtml代码:

 <ul class="dropdown-menu">
                <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">Java</a></li>
                <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">android</a></li>
                <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">Dot Net</a></li>
                <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">Zend Framework</a></li>
            </ul>

但我想在这里转换成循环。

Module.php代码:

 class Module
        {
              public function onBootstrap(MvcEvent $e) {
                $eventManager = $e->getApplication()->getEventManager();
                $moduleRouteListener = new ModuleRouteListener();
                $moduleRouteListener->attach($eventManager);

// this is for session


     $this->initSession(array(
                            'remember_me_seconds' => 180,
                            'use_cookies' => true,
                            'cookie_httponly' => true,
                                        ));
        // this code is not working(to get the values from db for menu list)
                $service = $this->getServiceLocator()->get('UserService');
            $result = $service->getmenulist();
                $this->layout()->myVariable = $result;
            }

    //other code
        }

这是我目前的布局菜单,但我想从数据库中创建下拉列表。我不知道如何将值传递给module.php的布局。有人帮我解决这个问题。有没有其他方法来执行它。在module.php中,我试图获取菜单名称列表并将其传递给布局。

1 个答案:

答案 0 :(得分:0)

检索UserService的代码不属于onBootstrap方法,因为无论您是否实际访问该模块,每次运行应用程序时都会执行该代码。此代码可能属于自定义视图,如@Sam建议的那样,可用于将菜单注入布局。

如果您计划在菜单周围添加其他功能,例如根据ACL切换项目,那么您的方法可能涉及自定义导航容器和/或监听器来获取和填充菜单。

不幸的是,您的问题更多的是设计问题,可能只是缺乏对某些基本ZF2概念的全面理解,而不是某个特定代码的实际问题。因此,您不会从社区获得太多回复。您可能只需要查看ZF2文档和教程,并在遇到实现这些概念的特定问题时再回来。

相关问题