首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZF2导航命令

ZF2导航命令
EN

Stack Overflow用户
提问于 2015-08-27 10:47:25
回答 1查看 266关注 0票数 0

我有以下问题,我用ZendFramework2原始文档中的数据测试了它,我不知道我是遗漏了什么,还是它只是一个缺少的功能。

在下面的示例中,我创建了两个级别的导航,然后打印带有echo的导航标签。正如您所看到的,我为第一级页面和两个二级页面设置了一个订单。如果您查看我的输出,您可以看到只有第一级页面的顺序是正确的。第二级页的顺序不对。

对于您输入的导航级别大于第一级,顺序不会更改。

你们中有谁有同样的问题,或者能告诉我我做错了什么?或者这是zend-navigation模块的一个未指定的功能?

谢谢

脚本

代码语言:javascript
复制
$container = new \Zend\Navigation\Navigation(
    array(
        array(
            'label' => 'ACL page 1 (guest)',
            'uri' => '#acl-guest',
            'resource' => 'nav-guest',
            'order' => 777,
            'pages' => array(
                 array(
                     'label' => 'ACL page 1.1 (foo)',
                      'uri' => '#acl-foo',
                      'resource' => 'nav-foo',
                      'order' => 666
                  ),
                  array(
                      'label' => 'ACL page 1.2 (bar)',
                       'uri' => '#acl-bar',
                       'resource' => 'nav-bar',
                  ),
                  array(
                      'label' => 'ACL page 1.3 (baz)',
                       'uri' => '#acl-baz',
                       'resource' => 'nav-baz',
                  ),
                  array(
                      'label' => 'ACL page 1.4 (bat)',
                      'uri' => '#acl-bat',
                      'resource' => 'nav-bat',
                      'order' => 111
                  ),
              ),
          ),
          array(
              'label' => 'ACL page 2 (member)',
              'uri' => '#acl-member',
              'resource' => 'nav-member',
              'order' => 555
          )
      )
  );

  foreach ($container as $page) {
      echo $page->label."<br>";
      if ($page->hasPages()) {
          foreach ($page->getPages() as $page2) {
              echo $page2->label."<br>";
          }
      }
  }
  die("ASD");

输出

代码语言:javascript
复制
ACL page 2 (member)
ACL page 1 (guest)
ACL page 1.1 (foo)
ACL page 1.2 (bar)
ACL page 1.3 (baz)
ACL page 1.4 (bat)
ASD
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-08 12:09:19

方法$page->getPages()返回阵列(文档)。只有当列表是导航对象时,元素才会被排序。

尝试:

代码语言:javascript
复制
foreach ($container as $page) {
    echo $page->label."<br>";
    if ($page->hasPages()) {
        $subpages = new \Zend\Navigation\Navigation($page->getPages());
        foreach ($subpages as $page2) {
            echo $page2->label."<br>";
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32247327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档