ситуация
- У меня есть небольшое приложение Symfony Twig, где я запускаю цикл for для отображения всех элементов.
- Я хочу разрешитьпользователь решает, будет ли его содержимое отображаться в определенном порядке или случайным образом, для чего я буду использовать функцию расширения ветки shuffle ().
- Если пользователь активирует переключатель тасования в бэкэнде, он выдаст yes дляпеременная activShuffle.
- Я хочу активировать расширение twig shuffle (), если вышеупомянутая переменная имеет значение yes
проблема
Я нашел способ справиться с требованием. Но следующим образом мне нужно продублировать некоторый код, который мне кажется очень неправильным.
Текущий код:
{% if activateShuffle == 'yes' %}
{% for item in images|shuffle() %}
<div>
<h1>{{ item.title }}</h1>
<img src="{{ asset('images/')}}{{ item.imagename }}"/>
</div>
{% endfor %}
{% else %}
{% for item in images %}
<div>
<h1>{{ item.title }}</h1>
<img src="{{ asset('images/')}}{{ item.imagename }}"/>
</div>
{% endfor %}
{% endif %}
решение
есть ли способ определить условие if в цикле for? чтобы он проверял, имеет ли переменная конкретное значение, и добавляет расширение? Так что, может быть, что-то вроде этого:
{% for item in images if activateShuffle == 'yes' add |shuffle() %}
<div>
<h1>{{ item.title }}</h1>
<img src="{{ asset('images/')}}{{ item.imagename }}"/>
</div>
{% endfor %}
Спасибо за вашу помощь