Symfony 4细枝原则,将子菜单关联到下拉列表

Symfony 4细枝原则,将子菜单关联到下拉列表,symfony,doctrine,twig,Symfony,Doctrine,Twig,我目前正在做一个网站下symfony。在nav中,我用twig调用数据库的内容。 代码如下: {% for advert in listWorker %} {% if advert.client != 'xxxxx' %} <li class="sidebar-dropdown"> <a href="#"> <span>{{ advert.client }}</span> </a> <div

我目前正在做一个网站下symfony。在nav中,我用twig调用数据库的内容。 代码如下:

{% for advert in listWorker %}
{% if advert.client != 'xxxxx' %}
<li class="sidebar-dropdown">
    <a href="#">
        <span>{{ advert.client }}</span>
    </a>
    <div class="sidebar-submenu">
        <ul>
            <li>
                <a href="#">{{ advert.nom }}</a>
            </li>
        </ul>
    </div>
</li>
{% endif %}
{% endfor %}
{%用于listWorker%中的广告]
{%if advert.client!=“xxxxx”}
  • {%endif%} {%endfor%}
    但是,我希望结果看起来像,我真的不知道如何将名称与同一列表中的相同客户端关联


    下面是我的

    缺少$worker->findAll()中的原始数据,下面是一个示例,其中包含一些symfony可以返回的虚拟数据:

    $db = array(
        '1' => array(
            'client1' => 'name1'
        ),
        '2' => array(
            'client1' => 'name2'
        ),
        '3' => array(
            'client2' => 'name1'
        ),
        '4' => array(
            'client2' => 'name2'
        ),
        '5' => array(
            'client2' => 'name3'
        ),
        '6' => array(
            'client3' => 'name1'
        ),
        '7' => array(
            'client1' => 'name2'
        )
    );
    
    然后您可以创建一个新的数组,该数组将按客户端重新组合所有内容:

    $final = [];
    
    foreach($db as $item)
    {
        $key = key($item);
        $final[$key][] = $item[$key];
    }
    
    此阵列的外观:

    array(3) {
      ["client1"]=>
      array(3) {
        [0]=>
        string(5) "name1"
        [1]=>
        string(5) "name2"
        [2]=>
        string(5) "name2"
      }
      ["client2"]=>
      array(3) {
        [0]=>
        string(5) "name1"
        [1]=>
        string(5) "name2"
        [2]=>
        string(5) "name3"
      }
      ["client3"]=>
      array(1) {
        [0]=>
        string(5) "name1"
      }
    }
    
    将其传递到index.html.twig视图并对其进行迭代。

    一些阅读材料:

    你能提供一个$worker->findAll()返回的示例吗,这会有所帮助。你使用的是ui框架吗,比如bootstrap?如果是哪一个版本?请不要以图片的形式发布代码。最后我一直在寻找嵌套循环的链接,现在它工作得很好。