我想创建一个widget => single_text
类型的日期输入,但我只希望用户能够在2000年到2099年之间选择/输入年份。使用widget => choice
这可以正常工作,但是single_text
我可以写出我想要的数字,尽管明确设置了范围属性。有没有快速的方法来实现这一目标,还是我必须创建一些其他验证?如果是这样,怎么样?
我的代码:
... ['respiteDate', DateType::class, [
'required' => false,
'widget' => 'single_text',
'years' => range(2000,2099)
],
], ...
提前致谢。
答案 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
似乎不支持max
和min="2000-01-01
属性,因此请确保包含服务器端验证...
希望这会有所帮助......