Настроить встроенную форму Symfony 2

Я прочитал документацию по Symfony 2 и пытаюсь создать собственную встроенную форму, и я не могу понять предоставленный код в документации.
Официальная документация:
http://symfony.com/doc/current/cookbook/form/form_customization.html

В частности, код, который я не понимаю, это:

{% form_theme form _self %}

{% block _tasks_entry_widget %}
<tr>
<td>{{ form_widget(task.task) }}</td>
<td>{{ form_widget(task.dueDate) }}</td>
</tr>
{% endblock %}

после многих тестов я заметил, что _task_entry — это имя внедренной формы (не имя поля в главной форме)

Теперь я пытаюсь получить то, что является переменной «задача», {{ form_widget(task.dueDate) }}

Я попытался снова использовать имя встроенной формы, имя поля сущности и имя основной переменной формы, но ничего не работает:

{% form_theme edit_form.lineas _self %}
{% block zb_gestionbundle_lineaalbaran_widget %}
<div class="large-1 small-1 columns">
{{ form_widget(form.cantidad) }}
</div>
<div class="large-8 small-8 columns">
{{ form_widget(form.concepto) }}
</div>
<div class="large-2 small-2 columns">
{{ form_widget(form.precio) }}
</div>
{% endblock %}

{{ form_label(edit_form.lineas) }}
{{ form_errors(edit_form.lineas) }}
{{ form_widget(edit_form.lineas) }}

В итоге, что мне нужно положить в {{ form_widget(form.cantidad) }} для того, чтобы код работал?

Tyvm !!

Одно из возможных решений:

После расследования немного больше, я нашел этот код, который работает!

{% form_theme edit_form _self %}
{% macro prototype(linea) %}
<div class="large-1 small-1 columns">
{{ form_widget(linea.cantidad) }}
</div>
<div class="large-8 small-8 columns">
{{ form_widget(linea.concepto) }}
</div>
<div class="large-2 small-2 columns">
{{ form_widget(linea.precio) }}
</div>
{% endmacro %}

{% for linea in edit_form.lineas %}
{{_self.prototype(linea)}}
{% endfor %}

Я не знаю, является ли документация неправильной, я оставляю ответ открытым для сомнения относительно документации.

2

Решение

Ваше решение работает! Просто чтобы завершить, у меня была та же проблема, но документация верна! Просто немного сложно понять. (На мой взгляд).

Чтобы использовать решение для документации:

  • Вы должны знать unique_block_prefix вашей встроенной формы.
    Для этого: добавьте это в свой код {{dump (form)}} и выполните поиск unique_block_prefix вашей встроенной формы.

  • тогда вам просто нужно заменить пример документации следующим образом:

{% form_theme form _self %}
{% block _zb_gestionbundle_lineaalbaran_entry_widget %}

<div class="large-1 small-1 columns">
{{ form_widget(form.cantidad) }}
</div>
<div class="large-8 small-8 columns">
{{ form_widget(form.concepto) }}
</div>
<div class="large-2 small-2 columns">
{{ form_widget(form.precio) }}
</div>

{% endblock %}


<!--block with your html/twig code, form, etc ..-->
{% block your_main_block %}

...
<!--your form-->
...
<!-- the embbeded part -->
{{form_row(form.lineas)}}

...

{% endblock %}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]