Php ZF2导航:设置UL id属性
我正在尝试使用导航来构建我的菜单。但是,我需要设置标记的idPhp ZF2导航:设置UL id属性,php,navigation,zend-framework2,Php,Navigation,Zend Framework2,我正在尝试使用导航来构建我的菜单。但是,我需要设置标记的id <ul class="sf-menu" id="nav"> <li class="active"> <a href="/">Home</a> </li> <li> <a href="/api">Api</a> </li> <li>
<ul class="sf-menu" id="nav">
<li class="active">
<a href="/">Home</a>
</li>
<li>
<a href="/api">Api</a>
</li>
<li>
<a href="/a">Baker and spice</a>
</li>
</ul> '
-
-
-
'
但是,我似乎不能这样做
我尝试使用foreach构建html
<?php
foreach ($this->container as $page){
}
?>
它没有做任何事情,因为$this->container显示为NULL
请指教
提前感谢,
贾斯汀如果你认为你可以打电话
echo $this->navigation('navigation')->menu();
要正确地输出菜单,您必须要做的是使用局部视图脚本创建自定义菜单(因此您要使用$this->container
,否则将无法设置)。要执行此操作,请确保您已获得:
echo $this->navigation('navigation')->menu()
->setPartial('my-module/partials/menu')->render();
以及相应的部分脚本:在module/MyModule/view/MyModule/partials
目录中(对于本例),有一个名为menu.phtml
的文件
//module/MyModule/view/my module/partials/menu.phtml
>
(这只提供了一个单级菜单,但会让您走上正确的道路。)您使用什么来定义导航结构?它是XML文件吗?PHP数组?在应用程序中的某个时刻,您将创建容器并将其设置为视图属性,该代码是什么样子的?为什么$this->container为空?这似乎出乎意料,也许解决这个问题可以让您解决
id
问题?我使用的是zend教程中定义的问题。在应用程序中的module.config.php中,我有以下内容:…'导航'=>数组('id'=>'boo','default'=>数组('label'=>'Home','route'=>'Home',),数组('label'=>'Api','route'=>'Api',),数组('label'=>'Baker and spice','route'=>'application',),),在我看来,我可以简单地调用echo$this->navigation('navigation')->menu()为了呈现菜单。谢谢Ezequiel!这修复了它!快速提问,htmlify应该返回一个带有锚定标记的字符串。我更改了module.config.php,因此它有一个额外的字段控制器和操作。但是锚定标记中的href是用“route”构建的(忽略控制器和操作字段)。我在想,可能$page的格式不正确。我尝试在menu.phtml中执行var_dump($page),但是,该页面无法呈现…提前感谢!路由定义应该规定这些字段的显示方式(如果有的话)。例如,route'myroute[/:action]“
withaction=='myaction'
应该会生成一个URLmyroute/myaction
。我知道我发布的示例是有效的,但如果你的示例不起作用,你应该考虑使用调试器逐行运行代码。
// module/MyModule/view/my-module/partials/menu.phtml
<ul class="sf-menu" id="nav">
<?php foreach ($this->container as $page): ?>
<li <?= $page->isActive()? 'class="active"' : '' ?>>
<?= $this->navigation()->menu()->htmlify($page) ?>
</li>
<?php endforeach; ?>
</ul>