0

我想根据用户表中的某些字段显示/隐藏菜单中的选项。有办法做到这一点吗?例如,如果 user.isFirst() 则从菜单中隐藏选项“产品”。

easy_admin:
site_name: '<img src="/build/images/logo.png" alt="dfg" />'
formats:
    datetime: 'Y-m-d'
design:
    brand_color: '#009036'
    color_scheme: 'light'
    form_theme: 'vertical'
    templates:
        layout: 'admin/default/layout.html.twig' #for rewrite layout and add edit my account button

    menu:
    - label: 'menu.labels.dashboard'
      route: 'route_declarant_dashboard'
      icon: 'dashboard'
      default: true
      params:
          menuIndex: 0
    - label: 'menu.labels.products'
      entity: 'Products'
      icon: 'shopping-bag'
    - label: 'menu.labels.users'
      entity: 'Users'
      icon: 'bullhorn'  

所以这个想法是:

  1. 隐藏“产品”-> if user.isFirst()

  2. 显示“产品”-> 其他情况。

4

1 回答 1

1

您可以通过在文件夹中创建一个来扩展简单的管理菜单 ( doc )menu.html.twigapp/templates/easy_admin/

{% extends '@!EasyAdmin/default/menu.html.twig' %}

<!-- [...] extract for example -->
{% if is_granted("CAN_SEE_PRODUCT")) and item.label = 'Products' %} <!-- your if condition of viewing menu link -->
    <a href="{{ path }}" {% if item.target|default(false) %}target="{{ item.target }}"{% endif %}>
            {% if item.icon is not empty %}<i class="fa {{ item.icon }}"></i>{% endif %}
            <span>{{ item.label|trans(domain = translation_domain) }}</span>
            {% if item.children|default([]) is not empty %}<span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span>{% endif %}
    </a>
{% endif %}
<!-- [...] extract -->

这只会隐藏链接。除非您更改简易管理控制器,否则用户仍然可以访问其他页面。您可以从这个github pull request disution中获得一些灵感,关于根据用户角色显示菜单以便于管理。

于 2019-01-16T15:03:58.600 回答