Group by фильтр в Twig

Главные вкладки

Аватар пользователя haver haver 28 октября 2021 в 19:45

Кто нибудь знает как сделать группировку при выводе массива в twig по определенному значению поля. Раньше видимо были доступны в twig фильтры |group_by |group которые сейчас убрали.

Мне нужно разобрать массив многозначного поля entity reference и по значению одного из полей сущности на которое оно ссылается сгруппировать вывод.
Поле field_stage в целевой сущности то по которому нужно отсортировать.

{% for visit in node.field_visits %}
{{ visit.entity.field_stage.value }}
{% endfor %}

Или вообще не нужно решать такие задачи через twig и сделать все на php в YOURTHEME_preprocess_node(&$variables) ?

Честно говоря уже подзадолбал этот twig. С его помощью как будто ограничили "злоупотребления" в шаблонах. А на самом деле получился еще один язык со своим извратным синтаксисом, плохо документированный и часто меняющийся. В итоге когда люди начинают извращаться на твиге решая свои задачи неизвестно еще насколько просядет производительность от всякого рода закрученных конструкций. Сложные конструкции в твиге дадут обратный эффект - проседает производительность, нечитабельный код итп.

Комментарии

Аватар пользователя adano adano 28 октября 2021 в 21:54

haver wrote: С его помощью как будто ограничили "злоупотребления" в шаблонах.

Это "местная байка".
На самом деле, Twig используется по умолчанию в Symfony, который позиционируется, как самый функциональный и самый быстрый шаблонизатор на сегодняшний день.

А так, солидарен с вами, особенно про синтаксис.

По вопросу: ИМХО, не надо пихать логику в шаблоны, максимум - if (частное мнение и ничего больше).