0

我在 Symfony 2 中遇到了重叠表单的问题。我正在尝试创建一个带有相册的应用程序。为此,我需要在此过程中创建一个相册并添加他的照片。照片仅与一张专辑链接。

我认为我的代码在后端是正确的,但照片的形式从未显示在相册的形式中。我认为问题出在形式上。

一张照片必须属性:一个文件和一个名称。

这是我的表格。

<script type="text/javascript">
$(document).ready(function() {
    var $container = $('#thelink_albumbundle_albumtype_photos');

    function add_photo() {
        index = $container.children().length;

        $container.append(
                $($container.attr('data-prototype').replace(/\$\$picture\$\$/g, index))
        );
    }

    if($container.children().length == 0)
        add_tag();


    $('#add_photo').click(function() {
        add_photo();
    });
});

<form method="post" enctype="multipart/form-data">
{{ form_widget(form) }}


<div id="thelink_albumbundle_albumtype_photos" data-prototype="&lt;div&gt;
    &lt;label class=&quot; required&quot;&gt;$$photo$$&lt;/label&gt;
    &lt;div id=&quot;thelink_albumbundle_albumtype_photos$$photo$$&quot;&gt;
    &lt;div&gt;&lt;label for=&quot;thelink_albumbundle_albumtype_photos$$photo$$_photo&quot;
    class=&quot; required&quot;&gt;Photo&lt;/label&gt;
    &lt;input type=&quot;file&quot; id=&quot;thelink_albumbundle_albumtype_photos$$photo$$_photo&quot;
    name=&quot;thelink_albumbundle_albumtype[photos][$$photo$$][picture]&quot; required=&quot;required&quot;
    maxlength=&quot;255&quot; value=&quot;&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;">
</div>

<br />

<a href="{{ path('TheLinkAlbumBundle_index') }}" title="Retourner sur la liste des Albums">
    Annuler la {% if news is defined %}Modification{% else %}Création{% endif %}
</a>

<input type="submit" value="{% if album is defined %}Modifier{% else %}Créer{% endif %} l'Album" />

你有什么主意吗 ?或者问题出在哪里?

4

1 回答 1

0

看起来您正在手动输入数据原型?假设“照片”是一个集合类型。确保将“allow_add”、“allow_delete”和“prototype”选项设置为 true:

    ->add('photos', 'collection', array(
        'type'              => new PhotoType(),
        'allow_add'         => true,
        'allow_delete'      => true,
        'prototype'         => true
    ))

然后你可以做 {{ form_row(form.photos) }} 它应该自动渲染原型。

如果您也可以发布您的表单类型,那将更有帮助。

于 2012-05-31T18:08:01.087 回答