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中,我试图获取菜单名称列表并将其传递给布局。
答案 0 :(得分:0)
检索UserService的代码不属于onBootstrap方法,因为无论您是否实际访问该模块,每次运行应用程序时都会执行该代码。此代码可能属于自定义视图,如@Sam建议的那样,可用于将菜单注入布局。
如果您计划在菜单周围添加其他功能,例如根据ACL切换项目,那么您的方法可能涉及自定义导航容器和/或监听器来获取和填充菜单。
不幸的是,您的问题更多的是设计问题,可能只是缺乏对某些基本ZF2概念的全面理解,而不是某个特定代码的实际问题。因此,您不会从社区获得太多回复。您可能只需要查看ZF2文档和教程,并在遇到实现这些概念的特定问题时再回来。