我正在使用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 **答案可以! –