我正在使用Symfony 2.6 ...Symfony:如何處理表單中的日期字段
我對錶單中的日期字段有一些疑問!
1)如果我在樹枝上的日期字段使用{{ form_row (form.data) }}
文件系統使得它在美國/ EN風格的日期(年月日)......我可以得到它EU/IT風格?
3)如何form_row與日期一起使用?
4)月意大利語可以嗎?並可能以長形式? (我的客戶是老意大利人)
我正在使用Symfony 2.6 ...Symfony:如何處理表單中的日期字段
我對錶單中的日期字段有一些疑問!
1)如果我在樹枝上的日期字段使用{{ form_row (form.data) }}
文件系統使得它在美國/ EN風格的日期(年月日)......我可以得到它EU/IT風格?
3)如何form_row與日期一起使用?
4)月意大利語可以嗎?並可能以長形式? (我的客戶是老意大利人)
1) 可能你會得到這種格式,因爲它是用默認的窗體樣式定義的。最簡單的方法是覆蓋在樹枝這種風格你會使用形式customisation(http://symfony.com/doc/current/cookbook/form/form_customization.html).
如果您在樹枝塊的開頭定義{% form_theme form_self %}
使用,可以覆蓋這是在form_div_layout.html.twig(find the link to the code inside the page cited above)
定義默認表單類型。 裏面的代碼,日期的渲染部分將圍繞{%- block date_widget -%},
所以,如果你可以在你的樹枝重新定義這個塊,可能會改變的
{{form_row (form.data)}}
3) form_row返回一組字段的默認行爲標籤,錯誤和小部件(http://symfony.com/doc/current/reference/forms/twig_reference.html)。 就日期而言,它通常會以您的表單樣式中定義的格式返回標籤和日期字符串。
4)您如何確切地表達月份?如果它可以是單獨的,只需要在確認屏幕中呈現,也許你可以在提交表單時獲得控制器內的值,然後獲取表單值,然後可以再次將它返回到樹枝中。
{% if month == '1' }Gennaio{% endif %}
{% if month == '2' }Febbraio{% endif %}
: : :
這是很幼稚,但我認爲至少在輸入時,它也不是那麼難通過數字輸入一個月。正如上面的評論中所建議的那樣,DatePicker在大多數情況下都可以完成這項工作。
是的是一個天真的解決方案。在DB中插入一條記錄之前,將代碼記錄到表單並解碼回原始格式有點日誌...使用迭代器也很複雜...我找到了** Frankbeen **滿意的答案,我會很高興與意大利風格日期3個字符的月份...除非我的客戶... –
**長**不記錄 –
確保PHP的國際擴展您的網絡服務器啓用,您在DEFAULT_LOCALE改變EN到它在app /配置/ config.yml:選項,今年的訂單/月/日應改爲意大利標準。
另一種解決方案是更改該單個字段的te格式。你可以read it in the docs。
感謝很多。這工作! –
您可以使用DateType的格式選項定義自己的日期格式。 – mblaettermann
一個更好的選擇恕我直言,將使用JS日期選擇器,以避免任何錯誤輸入的日期。 – mblaettermann
我試過了...但它不起作用。 ** Frankbeen **答案可以! –