dongxin5054 2013-08-29 04:44
浏览 7
已采纳

为每个动态创建的菜单创建不同的类

I am using Zend2 and i am creating menu items dynamicly. This is the function i am using:

public static function getAdminMenu() {
    $config = \App\Application::getInstance()->getConfig();
    $menuItems = $config['menu_items'];

    $html = '<ul>';
    foreach ($menuItems as $section => $menuItem) {
        $html .= '<div class="user-menu-section">' . $section . '</div>';
        foreach ($menuItem as $subSection => $params) {
            $html .= '<li><a href="' . $config['router']['routes'][$menuItem[$subSection]['link']]['options']['route'] . '">' . $subSection . '</a></li>';
        }
    }
    $html .= '</ul>';
    return $html;
}

How can i create divs with different class user-menu-section for each menu item. It should be something like 'user-menu-section1', 'user-menu-section2'...

Or maybe better to use something like this: <div class="' . $section . '">; but in this case, if $section is a string of two words i would need '-' in between words and both words small caps, if it is possible.

  • 写回答

1条回答 默认 最新

  • duanshan1511 2013-08-29 05:28
    关注

    Well, just use your $section and modify this. Using ZF2, you'd use the Filter CamelCaseToDash

    $filter        = new \Zend\Filter\Word\CamelCaseToDash();
    $classFiltered = strtolower($filter->filter($class);)
    

    Now you can use $classFiltered for your CSS-Class assignment.

    And since you've mentioned both frameworks in your tags. In case you are using ZF2, that code is horrible :D You should create yourself a ViewHelper that renders the Menu. Evan Coury has written a very easy introduction on how to do that.

    Aside from that, you don't need a static call to some Application::getInstance(). If you want to gain access to the config you do this via the ServiceLocator. In a Controller this would look like this:

    $config = $this->getServiceLocator()->get('config');
    

    If you need the config in another class outside of the Controller, you create the class from the ServiceLocator and inject the config into this class.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等