我有一个发送电子邮件的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, horizontal_label_class,horizontal_label_offset_class, horizontal_input_wrapper_class,allow_add,allow_delete“没有 存在。
我在这里做错了什么?
答案 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,
));