Сейчас я делаю сайт под symfony. В навигаторе я вызываю с помощью 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 %}
Однако я хотел бы, чтобы результат выглядел как это, и я действительно не знаю, как связать имена с одними и теми же клиентами в одном списке ...
вот мой контролер
вы используете фреймворк пользовательского интерфейса, например bootstrap? если да, то какая версия?
Пожалуйста, не размещайте код как изображения
Не имея исходных данных из вашего $ 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 (), это поможет.