【问题标题】:How to set Date Range in Symfony DateType with single_text widget如何使用 single_text 小部件在 Symfony DateType 中设置日期范围
【发布时间】:2017-11-23 11:22:06
【问题描述】:

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

我的代码:

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

提前致谢。

【问题讨论】:

    标签: php forms symfony date range


    【解决方案1】:

    您所拥有的是特定于 Chrome 的日期选择器的屏幕截图(如果没有记错的话)。不同的浏览器以不同的方式执行此操作,当涉及到<input type="date"/> (MDN link) 时,它们无法具体说明哪些年份是被允许的(与choice 变体相反)。

    根据standard,有一种方法可以指定minmax 日期,您可能会觉得这很合适——您只需要指定min="2000-01-01max="2099-12-31"

    有趣的是,DateType 似乎不支持minmax 属性,所以一定要包含服务器端验证...

    希望这会有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2022-01-18
      • 2014-04-23
      相关资源
      最近更新 更多