登录用户的不同菜单

Different menu for login user

如何根据用户是否登录来限制菜单数组中的某些路径?因为我不想要“注册”选项卡,因为用户已经登录到 Symfony。

{% block header %}
<div class="navbar navbar-inverse" role="navigation">
  <div class="blockMain">
      {% set mainMenu = [
        {'path': 'main',          'name': 'Home' },
        {'path': 'all',           'name': 'All' },
        {'path': 'TEST_test',     'name': 'TEST' },
        {'path': 'fos_user_profile_show',   'name': 'Profile' },
        {'path': 'fos_user_security_logout','name': 'logout'}
        {'path': 'fos_user_security_login',         'name': 'Login' },
        {'path': 'fos_user_registration_register',  'name': 'Register' }
      ] %}

    <div class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        {% for item in mainMenu %}
          <li{{ app.request.get('_route') == item['path'] ? ' class="active"' : '' }}>
            <a href="{{ path(item['path']) }}">{{ item['name'] }}</a>
          </li>
        {% endfor %}
      </ul>
    </div><!--/.navbar-collapse -->
  </div>
</div>
{% endblock %}

你可以在TWIG中查看角色:{% if is_granted("ROLE_USER") %}

{% block header %}
<div class="navbar navbar-inverse" role="navigation">
  <div class="blockMain">

        {% if is_granted("ROLE_USER") %}
            {% set mainMenu = [
                {'path': 'main',          'name': 'Home' },
                {'path': 'all',           'name': 'All' },
                {'path': 'TEST_test',     'name': 'TEST' },
                {'path': 'fos_user_profile_show',   'name': 'Profile' },
                {'path': 'fos_user_security_logout','name': 'logout'}
            ] %}          
        {% else %}
            {% set mainMenu = [
                {'path': 'main',          'name': 'Home' },
                {'path': 'fos_user_security_login',         'name': 'Login' },
                {'path': 'fos_user_registration_register',  'name': 'Register' }
            ] %}          
        {% endif %}

    <div class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        {% for item in mainMenu %}
          <li{{ app.request.get('_route') == item['path'] ? ' class="active"' : '' }}>
            <a href="{{ path(item['path']) }}">{{ item['name'] }}</a>
          </li>
        {% endfor %}
      </ul>
    </div><!--/.navbar-collapse -->
  </div>
</div>
{% endblock %}