Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 奏鸣曲日期范围_Symfony_Date_Sonata Admin_Sonata - Fatal编程技术网

Symfony 奏鸣曲日期范围

Symfony 奏鸣曲日期范围,symfony,date,sonata-admin,sonata,Symfony,Date,Sonata Admin,Sonata,我有一个小问题,我正在使用Sonata进行一个小项目,但我试图找出如何自定义日期范围,以便人们可以选择日期,例如从2000年1月1日到2020年12月31日。有人能告诉我在索纳塔的文档中哪里可以找到它,或者告诉我怎么做吗?因为我有一点外观,我没有什么可以完全定制日期的选择 提前谢谢 编辑: 在symfony文档中,我发现了这个 'days' => range(1,31) 在这里: 但我在索纳塔的文件里找不到任何东西。而且不像Symfony那样工作:/我假设您在奏鸣曲中使用了奏鸣曲类型日期

我有一个小问题,我正在使用Sonata进行一个小项目,但我试图找出如何自定义日期范围,以便人们可以选择日期,例如从2000年1月1日到2020年12月31日。有人能告诉我在索纳塔的文档中哪里可以找到它,或者告诉我怎么做吗?因为我有一点外观,我没有什么可以完全定制日期的选择

提前谢谢

编辑:

在symfony文档中,我发现了这个

'days' => range(1,31)
在这里:


但我在索纳塔的文件里找不到任何东西。而且不像Symfony那样工作:/

我假设您在奏鸣曲中使用了奏鸣曲类型日期选择器。文件是。然后,您的案例可以这样实施:

->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日期字段,可与SonatAdmin配合使用:

->add('userDate', 'date', [
    'years' => range(2000, 2020),
]);
我还建议使用相同的规则(在实体中)添加后端验证:


谢谢,但是我用过,但是我不能摘。在我使用->add('userDate','date',…)之前,它就像一个文本区域,我可以选择它。这对用户来说更容易。你知道我怎么用“sonata_type_date_picker”做到这一点吗?那么,你想要3个下拉列表还是一个日期选择器?如果是日期选择器,您将看到文本输入。您需要在页面中添加一些JavaScript(可以通过配置完成),然后除了文本输入之外,您还可以看到datepicker。如果可以使用3下拉列表,那就太完美了
/**
 * @var \DateTime()
 *
 * @Assert\Range(
 *      min = "2000-01-01",
 *      max = "2020-12-31"
 * )
 */
protected $userDate;