我有一个表单字段,我想在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创建表单字段?
答案 0 :(得分:0)
添加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 %}
答案 1 :(得分:0)
id
需要位于attr
部分:
{{ form_widget(form.purchaseOrderLineItem, { 'value': value, 'attr': {'style': 'display:none', 'id':'new_id'} }) }}