【问题标题】:Sonata Date range奏鸣曲日期范围
【发布时间】:2018-03-01 17:15:14
【问题描述】:

我有一个小问题我正在使用 Sonata 进行一个小项目,但我正在尝试弄清楚如何自定义人们可以选择日期的日期范围,例如从 2000 年 1 月 1 日到 2020 年 12 月 31 日。有人可以告诉我在奏鸣曲文档中的哪里可以找到它或告诉我如何去做?因为我稍微看了一下,我没有什么可以完全自定义日期的选择。

提前致谢

编辑:

在 symfony 文档中我发现了这个

'days' => range(1,31)

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

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

【问题讨论】:

    标签: symfony date sonata-admin sonata


    【解决方案1】:

    我假设您在 Sonata 中使用 sonata_type_date_picker 字段。文档是here。那么你的案例可以这样实现:

    ->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;
    

    【讨论】:

    • 谢谢,但我用过,但我挑不出来。现在它就像我使用之前的文本区域 ->add('userDate', 'date', ....) 并且我能够选择它。这对用户来说更容易。你知道我怎么用'sonata_type_date_picker'来做到这一点
    • 那么,你想要 3 个下拉菜单还是一个日期选择器?如果是日期选择器,您将看到文本输入。您需要在页面中添加一些 JavaScript(可以通过配置完成),然后除了文本输入之外,您还会看到 datepicker。
    • 如果可以有 3 个下拉菜单就完美了
    猜你喜欢
    • 2016-02-29
    • 2019-05-17
    • 2017-04-27
    • 2013-12-04
    • 2015-03-20
    • 2017-08-09
    • 2018-01-09
    • 2014-02-04
    • 2017-06-03
    相关资源
    最近更新 更多