Не имея исходных данных из вашего $ 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 и выполните итерацию по нему.
Некоторые материалы для чтения: Вложенный цикл веток