从 Symfony DateType::class 禁用日期和月份

Ste*_*sic 2 symfony-forms symfony

->add('attendFrom', DateType::class, array(
                'widget' => 'choice',
                'html5' => false,
                'months' => array(),
                'days' => array(),
                'attr' => array(
                    'placeholder' => 'Start year, e.g., 1980 ',
                )
            ))
Run Code Online (Sandbox Code Playgroud)

我尝试禁用日期和月份的类型。我只想展示几年。这是可能的吗?

我找到了一些解决方案来隐藏树枝上的几天和几个月,但我想知道我是否可以从 FormType 中禁用它。

干杯

Gop*_*shi 5

yyyyformat选项

形式:

->add('attendFrom', DateType::class, array(
    'format' => 'yyyy',
    'widget' => 'choice',
    'html5' => false,
    'attr' => array(
        'placeholder' => 'Start year, e.g., 1980 ',
    )
))
Run Code Online (Sandbox Code Playgroud)

更新 1

在树枝中隐藏月和日控制

树枝

{{ 
    form_widget(
        form.formName.attendFrom.day, 
        { 
            'attr': { 'style': 'display:none' }
        }
    )
    form_widget(
        form.formName.attendFrom.month, 
        { 
            'attr': { 'style': 'display:none' }
        }
    ) 
}}
Run Code Online (Sandbox Code Playgroud)

参考:链接

  • 现在(从 Symfony 3.0 开始)强制将“y”、“M”和“d”字母包含在“format”选项中。因此,给出的答案不适用于较新的代码库。 (2认同)