forms - 如何在 Symfony 2.0 中处理多个嵌套的表单集合?

标签 forms collections symfony one-to-many

我有这个问题的扩展:How to deal with Form Collection on Symfony2 Beta? - 我的项目类似,但对象嵌套得更深。我有包含一个或多个内容元素的文章,每个元素包含一个或多个媒体。到目前为止,模型和 Controller 工作正常,但我不知道如何在我的模板中正确表示嵌套。
Form/ContentType.php 看起来没问题:

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
            ))
        ;
    }

到目前为止,用于创建(或编辑)文章的表单模板如下所示(几乎是普通的自动生成模板):
...
<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>
...

我如何访问每个内容的媒体,以便它们正确关联?

最佳答案

遍历所有内容的媒体:

<form action="{{ path('article_create') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}

    {% for content in form.contents %}
        {% for media in content.medias %}
            {{ form_widget(media) }}
        {% endfor %}
    {% endfor %}

    <p>
        <button type="submit">Create</button>
    </p>
</form>

关于forms - 如何在 Symfony 2.0 中处理多个嵌套的表单集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336667/

相关文章:

asp.net-mvc - MVC4 - 一个表单 2 提交按钮

php - 使用 PHP 注册表中的单选按钮同意或不同意条款和条件

java - 我应该在使用 getOrDefault() 之后使用 put() 还是 putIfAbsent()?

symfony - 如何在 symfony2 项目中安装/更新 javascript 供应商?

Symfony2 自定义选民角色层次结构

PHP:file_get_contents 中的文件名不能为空

将焦点()放在下一个表单元素上的 Javascript 函数不起作用

java - 使用优先级队列计算中值

.net - 寻找一种将大量对象加载到 .NET 中的 IDictionary 的技术

mysql - Symfony 4 Doctrine 与 @ORM\Column 抛出 MySQL 1054 错误