#php #symfony #twig
#php #symfony #twig
Вопрос:
цель: база данных продуктов компонент twig, визуализируемый в цикле.
У меня есть такая настройка:
- Компонент продукта .twig с моей разметкой компонента:
<article class="productCard "><h3 class="productCard__name">{{ product.name }}</h3></article>
- Цикл на моей странице, в котором я хочу отобразить все экземпляры продукта, но с шаблоном компонента twig:
{% for product in products %}
<div class="col">
{{ include('components/productCard.html.twig'),{'product.name': product.name}) }}
</div>
{% if loop.index % 4 == 0 %}
</div><div class="row" >
{% endif %}
- База данных с фактическим списком продуктов.
Я не уверен в правильном синтаксисе вызова цикла для достижения того, чего я хочу (передача параметров базы данных в цикл компоненту).
Комментарии:
1. То, что вы ищете, — это, по сути, как отправить массив продуктов в шаблон в качестве переменной?
2. Я так думаю .. как я могу это сказать .. я хочу, чтобы мои продукты отображались на моей странице каждый с этим шаблоном и их собственными переменными?
3. Ах, теперь я вижу после редактирования, что у вас уже есть цикл… там у вас есть дополнительная закрывающая скобка:
productCard.html.twig'),
— вы закрываетеinclude
вызов здесь.4. Я думаю, что передача всей переменной product будет работать лучше:
{{ include('components/productCard.html.twig', { product: product }) }}
5. ^ вам не нужно явно отправлять переменную
product
в шаблон, поскольку она все равно будет известна внутри включенного шаблона из-за цикла
Ответ №1:
Правильный синтаксис будет:
{% include 'components/productCard.html.twig' %}
Нет необходимости использовать with
или передавать переменные. Тогда ваш другой фрагмент должен работать как есть:
<article class="productCard">
<h3 class="productCard__name">{{ product.name }}</h3>
</article>