奏鸣曲日期范围

Dar*_*ile 5 date symfony sonata-admin sonata

我有一个小问题我正在使用索纳塔的一个小项目,但我想弄清楚如何定制一个人可以选择日期的日期范围,例如从2000年1月1日到2020年12月31日.有人可以告诉我在哪里我可以在Sonata文档中找到它或告诉我该怎么做?因为我有一点看,我没有什么可以完全自定义日期的选择.

提前致谢

编辑:

在symfony文档中,我发现了这一点

'days' => range(1,31)
Run Code Online (Sandbox Code Playgroud)

这里:http://symfony.com/doc/current/reference/forms/types/date.html

但我在奏鸣曲文档中找不到任何东西.而不是在Symfony上工作:/

Mak*_*hev 4

我假设您在奏鸣曲中使用sonata_type_date_picker字段。文档在这里。那么你的案例可以这样实现:

->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',
]);
Run Code Online (Sandbox Code Playgroud)

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

->add('userDate', 'date', [
    'years' => range(2000, 2020),
]);
Run Code Online (Sandbox Code Playgroud)

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

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