Tengo una extensión a esta pregunta: How to deal with Form Collection on Symfony2 Beta? - Mi proyecto es similar, pero los objetos están anidados más profundamente. Tengo artículos que tienen uno o más elementos de contenido, cada uno de los cuales contiene uno o más medios. El Modelo y los Controladores funcionan bien hasta ahora, pero no sé cómo representar correctamente el anidamiento en mi plantilla. Formulario/ContentType.php se ve bien:¿Cómo manejar múltiples colecciones de formularios anidados en Symfony 2.0?
class ContentType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('headline')
->add('text')
->add('medias', 'collection', array(
'type' => new MediaType(),
'allow_add' => true
))
;
}
Y hasta el momento, la plantilla de formulario para la creación (o editar) un artículo es el siguiente (plantilla generada automáticamente casi vainilla):
...
<form action="{{ path('article_create') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
{% for content in form.contents %}
{{ form_widget(content) }}
{% endfor %}
<p>
<button type="submit">Create</button>
</p>
</form>
...
¿Cómo accedo a cada medio de contenido para que se asocien correctamente?
Gracias por su respuesta! En realidad, ya he estado allí, pero no estoy del todo claro sobre cómo puedo agregar o quitar de forma limpia y dinámica elementos de contenido y medios usando los prototipos de campo de formulario generados. Mi solución hasta el momento es agregar n elementos de contenido vacíos, cada uno con m elementos de medios vacíos. Esto limita la cantidad de contenidos y medios que puedo agregar. Prefiero usar el prototipo integrado para agregar elementos de contenido dinámicamente, pero no sé cómo agregar dinámicamente los medios asociados en ese momento. –