如何使用single_text小部件

时间:2017-11-23 11:22:07

标签: php forms symfony date range

我想创建一个widget => single_text类型的日期输入,但我只希望用户能够在2000年到2099年之间选择/输入年份。使用widget => choice这可以正常工作,但是single_text我可以写出我想要的数字,尽管明确设置了范围属性。有没有快速的方法来实现这一目标,还是我必须创建一些其他验证?如果是这样,怎么样?

this is how it looks like with single_text

我的代码:

... ['respiteDate', DateType::class, [
               'required' => false,
               'widget' => 'single_text',
               'years'  =>  range(2000,2099)
               ],
           ], ...

提前致谢。

1 个答案:

答案 0 :(得分:1)

你所拥有的是Chrome特定日期选择器的截图(如果没有记错的话)。不同的浏览器以不同的方式执行此操作,当涉及到$components = []; preg_match('#(app)/(module)/([^.]+)/i([0-9]+)#', $uri, $components); MDN link)时,他们无法具体说明允许哪些年份(与$components变体相反)。

根据standard,有一种方法可以指定array_shift($components); # discard first element <input type="date"/>日期,您可能会觉得它们足够合适 - 您只需要指定choice和{{ 1}}。

有趣的是,min似乎不支持maxmin="2000-01-01属性,因此请确保包含服务器端验证...

希望这会有所帮助......