关键的“原型”不存在

时间:2018-03-15 12:33:56

标签: php symfony

我有一个发送电子邮件的Symfony 3.3联系表单,我想允许上传一些附件。

我正在尝试调整https://symfony.com/doc/3.3/form/form_collections.html以满足我的需求。

我的formBuilder的相关部分如下所示:

        ->add('attachments', 'collection', array(
            'entry_type'   => FileType::class,
            'entry_options'  => array(
                'required'  => false,
                'allow_add' => true,
            ),
        ));

...我刚修改了我的Twig模板,看起来像这样......

<div>
    <ul class="attachments" data-prototype="{{ form_widget(form.attachments.vars.prototype)|e('html_attr') }}">
    {% for attachment in form.attachments %}
        <li>{{ form_widget(attachment) }}</li>
    {% endfor %}
    </ul>
</div>

...此时我的页面加载会产生以下消息:

  

关键字“原型”,用于数组,其中包含“value,attr,form,id,name,   full_name,disabled,label,label_format,multipart,block_prefixes,   unique_block_prefix,translation_domain,cache_key,errors,valid,   数据,必需,大小,label_attr,化合物,方法,行动,提交,   sonata_admin_enabled,sonata_help,sonata_admin,   horizo​​ntal_label_class,horizo​​ntal_label_offset_class,   horizo​​ntal_input_wrapper_class,allow_add,allow_delete“没有   存在。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

这可能会对您有所帮助,请参阅文档:Symfony form collection

<ul  data-prototype="{{ form_widget(form.attachments.vars.prototype)|e('html_attr') }}">
{{ form_widget(form.tags.vars.prototype.name)|e }}
    ...
</ul>

或者

<div>
    <ul>
    {% for attachment in form.attachments %}
        <li>{{ form_row(attachment.name) }}</li>
    {% endfor %}
    </ul>
</div>

另请参阅此文件

答案 1 :(得分:0)

allow_add属性提升到一个水平就可以了。所以我现在有:

        ->add('attachments', 'collection', array(
            'entry_type'   => FileType::class,
            'entry_options'  => array(
                'required'  => false,
            ),
            'allow_add' => true,
        ));