[英]Symfony3 form builder form field in span instead of div
我有Symfony3應用程序,我正在制作一個簡單的形式,樹枝中的代碼如下
{{ form_start(edit_form) }}
{{ form_widget(edit_form) }}
<input type="submit" value="Edit" />
{{ form_end(edit_form) }}
很簡單。 這段代碼創建的是一個表單,每個表單字段都在它自己的<div>
,這很好,但如果類型是日期,那么生成的html就像
<div>
<label class="required">Term</label>
<div id="appbundle_project_term">
<select id="appbundle_project_term_year" name="appbundle_project[term][year]"></select>
<select id="appbundle_project_term_year" name="appbundle_project[term][month]"></select>
<select id="appbundle_project_term_year" name="appbundle_project[term][day]"></select>
</div>
</div>
讓我煩惱的是為日期類型字段創建的內部div
。 FormBuilder中是否有一種方法可以保留類型日期,但刪除此內部div而不使用javascript來處理它或在樹枝模板中。 簡單地說 - “內部標簽=>跨度”。 這是非常通用的問題,因為我正在尋找一種通常更改自動生成的標簽的方法,但如果需要,這里是如何在表單構建器中創建此表單字段
add('term',DateType::class, array(
'widget' => 'choice',
'label'=>"Term",
'data'=>$project->getTerm()
))
您可以覆蓋表單呈現,但有幾種方法。
最簡單的一個是覆蓋表單主題窗口小部件塊(在本例中為date_widget
)並將form_theme
設置為_self
。
基本示例:
{% form_theme form _self %}
{% block date_widget %}
<span>
{% if widget == 'single_text' %}
{{ block('form_widget_simple') }}
{% else %}
{# rendering 3 fields for year, month and day #}
{{ form_widget(form.year) }}
{{ form_widget(form.month) }}
{{ form_widget(form.day) }}
{% endif %}
</span>
{% endblock %}
{% block content %}
{# ... form rendering #}
{{ form_row(form.someDateField) }}
{% endblock %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.