Могу ли я повторить форму Symfony в цикле с Twig, или мне нужно собрать ее вручную? - PullRequest
0 голосов
/ 14 сентября 2018

Я совершенно новичок в Symfony и Twig; только вчера меня бросили в унаследованный проект, который их использует.

У меня есть список, созданный в цикле шаблона, из Orders, каждый ордер имеет priority от 1-5.

Я хочу добавить по одному Select к каждому Order row, который отправляет обновление формы, которое Order 'priority, и обновляет страницу.

У меня вопрос: могу ли я использовать buildForm Symfony в сочетании с этой архитектурой? На данный момент у меня есть следующая форма, построенная вручную. Возможно ли даже создать серию идентичных форм, подобных этой, с помощью Twig?

{% for order in orders %}
<form method="post" action="{{ path('change_priority') }}" style="margin: 0; padding: 0;">
    <div class="form-group">
        <select name="priority" style="width: 35px; height: 20px;" onchange="this.form.submit()">
            <option value="1" {% if order.currentBody.priority == 1 %} selected {% endif %}>1&nbsp;&nbsp;- Low</option>
            <option value="2" {% if order.currentBody.priority == 2 %} selected {% endif %}>2&nbsp;&nbsp;- Normal</option>
            <option value="3" {% if order.currentBody.priority == 3 %} selected {% endif %}>3&nbsp;&nbsp;- High</option>
            <option value="4" {% if order.currentBody.priority == 4 %} selected {% endif %}>4&nbsp;&nbsp;- Critical</option>
            <option value="5" {% if order.currentBody.priority == 5 %} selected {% endif %}>5&nbsp;&nbsp;- No Priority</option>
        </select>
        <input name="order_id" value="{{order.serial}}" type="hidden" />
    </div>
</form>
{% endfor %}

А вот изображение того, что я ищу. Изменение приоритета любого из элементов строки Order изменяет приоритет Order, а затем обновляет страницу.

enter image description here

1 Ответ

0 голосов
/ 14 сентября 2018

Вы должны добавить их в типе формы.Вы не можете сделать это в своем шаблоне ветки.Если вы визуализируете поле с чем-то вроде {{form_row (form.select)}}), оно будет помечено как отображаемое и не будет отображаться во второй раз, даже если вы снова вызовете {{form_row (form.select)}}.

...