【发布时间】:2014-01-25 07:59:51
【问题描述】:
我正在使用 ZF2 和 bootstrap 构建一个菜单,并且我已经有了这种菜单:
Home | Users | Options
但现在我需要子菜单,但我找不到这样做的方法。我需要悬停菜单项(例如:用户),然后显示“列表”、“添加”、“编辑”
非常感谢任何帮助。
谢谢
【问题讨论】:
标签: php twitter-bootstrap frameworks zend-framework2
我正在使用 ZF2 和 bootstrap 构建一个菜单,并且我已经有了这种菜单:
Home | Users | Options
但现在我需要子菜单,但我找不到这样做的方法。我需要悬停菜单项(例如:用户),然后显示“列表”、“添加”、“编辑”
非常感谢任何帮助。
谢谢
【问题讨论】:
标签: php twitter-bootstrap frameworks zend-framework2
您可以通过局部视图实现此目的。
在您的配置文件中,例如config/autoload/global.php:
return array(
// Your others config arrays
'navigation' => array(
'default' => array(
array(
'label' => 'Home',
'route' => 'home',
),
array(
'label' => 'User',
'route' => 'user',
'pages' => array(
array(
'label' => 'List',
'route' => 'list',
),
array(
'label' => 'Add',
'route' => 'add',
),
array(
'label' => 'Edit',
'route' => 'edit',
),
),
),
array(
'label' => 'Options',
'route' => 'options',
),
)
)
);
在您的布局文件中,例如查看/布局/layout.phtml:
<nav>
<?php
echo $this->navigation('navigation')
->menu()
->setPartial('partial/menu')
->render();
?>
</nav>
局部视图,这里是 view/partial/menu.phtml :
<ul>
<?php
foreach ($this->container as $page)
{
$hasChildren = $page->hasPages();
if( ! $hasChildren)
{
?>
<li><a href="<?php echo $page->getHref(); ?>"><?php echo $page->getLabel(); ?></a></li>
<?php
}
else
{
?>
<li>
<a href="<?php echo $page->getHref(); ?>"><?php echo $page->getLabel(); ?></a>
<ul>
<?php
foreach($page->getPages() as $child)
{
?>
<li><a href="<?php echo $child->getHref(); ?>"><?php echo $child->getLabel(); ?></a></li>
<?php
}
?>
</ul>
</li>
<?php
}
}
?>
</ul>
如果您需要 CSS 示例,您可以在此答案中找到一些示例:
【讨论】: