我有一个表单字段,我想在Twig中渲染时更改ID。由于某种原因,它没有将ID添加到表单字段。
这是我在Twig中如何做的:
{{ form_widget(form.purchaseOrderLineItem, { 'value': value, 'id': 'new_id', 'attr': {'style': 'display:none'} }) }}
输出如下:
<input class="form-control" type="text" value="203543" />
为什么不创建带有ID的表单字段?
添加id属性没有意义,因为它硬编码在模板form_div_layout.html.twig中。但是你可以像这样重写它:
{% form_theme form _self %}
{% block widget_attributes %}
{% spaceless %}
{% if attr.id is not defined %}id="{{ id }}"{% endif %} name="{{ full_name }}"{% if read_only %} readonly="readonly"{% endif %}{% if disabled %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %}
{% for attrname, attrvalue in attr %}{% if attrname in ['placeholder', 'title'] %}{{ attrname }}="{{ attrvalue|trans({}, translation_domain) }}" {% else %}{{ attrname }}="{{ attrvalue }}" {% endif %}{% endfor %}
{% endspaceless %}
{% endblock widget_attributes %}
{% block body %}
{{ form(form) }}
{% endblock %}
id
需要在attr
section:
{{ form_widget(form.purchaseOrderLineItem, { 'value': value, 'attr': {'style': 'display:none', 'id':'new_id'} }) }}