Symfony 奏鸣曲日期范围
我有一个小问题,我正在使用Sonata进行一个小项目,但我试图找出如何自定义日期范围,以便人们可以选择日期,例如从2000年1月1日到2020年12月31日。有人能告诉我在索纳塔的文档中哪里可以找到它,或者告诉我怎么做吗?因为我有一点外观,我没有什么可以完全定制日期的选择 提前谢谢 编辑: 在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那样工作:/我假设您在奏鸣曲中使用了奏鸣曲类型日期
'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;