Php ZF2导航:设置UL id属性

Php 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>

我正在尝试使用导航来构建我的菜单。但是,我需要设置标记的id

<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]“
with
action=='myaction'
应该会生成一个URL
myroute/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>