Показать / скрыть опцию меню в зависимости от некоторых условий - PullRequest
0 голосов
/ 09 января 2019

Я хочу показать / скрыть опцию из меню в зависимости от поля в пользовательской таблице. Есть способ сделать это? Например, если 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. Показать "Товары" -> другие случаи.

1 Ответ

0 голосов
/ 16 января 2019

Вы можете расширить простое меню администратора ( doc ), создав menu.html.twig в папке app/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 controller. Вы можете получить вдохновение от этого запроса на github pull об отображении меню в соответствии с ролями пользователей для легкого администрирования.

...