0

ユーザーテーブルのフィールドに応じて、メニューからオプションを表示/非表示にしたい。それを行う方法はありますか?たとえば、user.isFirst() の場合、メニューからオプション 'Product' を非表示にします。

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

これはリンクを非表示にするだけです。easy admin コントローラーを変更しない限り、ユーザーは引き続き他のページにアクセスできます。簡単な管理のためにユーザーの役割に応じてメニューを表示することについて、このgithub プル リクエストの議論からインスピレーションを得ることができます。

于 2019-01-16T15:03:58.600 に答える