奏鸣曲日期范围

Sonata Date range

我有一个小问题,我正在使用 Sonata 进行一个小项目,但我想弄清楚如何自定义一个人可以选择日期的日期范围,例如从 2000 年 1 月 1 日到 2020 年 12 月 31 日。有人可以告诉我在 Sonata 文档中的什么地方可以找到它或告诉我如何去做吗?因为我有点看不起完全自定义日期的选择。

提前致谢

编辑:

在 symfony 文档中我发现了这个

'days' => range(1,31)

此处:http://symfony.com/doc/current/reference/forms/types/date.html

但我在奏鸣曲文档中找不到任何内容。而且不像在 Symfony 上那样工作:/

我假设你在奏鸣曲中使用 sonata_type_date_picker 字段。文档是 here。那么你的case可以这样实现:

->add('userDate', 'sonata_type_date_picker', [
    'dp_min_date' => 'Jan 1, 2000', //todo: date format here depends on your setup. Basicly it's the same format, you see in text field after you selected data in datepicker.
    'dp_max_date' => 'Dec 31, 2020',
]);

或者,您可以使用带 3 个下拉菜单的日期选择器 - 它是标准的 Symfony date 字段,与 SonataAdmin 配合良好:

->add('userDate', 'date', [
    'years' => range(2000, 2020),
]);

我还建议添加具有相同规则的后端验证(在实体中):

/**
 * @var \DateTime()
 *
 * @Assert\Range(
 *      min = "2000-01-01",
 *      max = "2020-12-31"
 * )
 */
protected $userDate;