Symfony 2:如何在没有一天的情况下渲染日期字段?

avk*_*kov 4 symfony symfony-2.3

我正在尝试使用日期字段构建表单,用户可以选择一个月和一年(没有一个月的日期),但我无法弄清楚如何实现这一点.

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add(
        'month',
        'date',
        array(
            'label' => 'Month & year',
            'input' => 'array',
            'widget' => 'choice',
        ));

    $builder->add('submit',
                  'submit');
}
Run Code Online (Sandbox Code Playgroud)

理想的结果是两个下拉列表:月份列表(数字表示)和年份列表(4位数,5年后).

我想我可以使用2种选择类型的字段,但也许有更优雅的解决方案?

Tej*_*sai 7

您可以在twig文件中执行类似的操作.

    {{ form_widget(yourForm.month.month) }}
    {{ form_widget(yourForm.month.year) }}
Run Code Online (Sandbox Code Playgroud)

这将显示两个选项字段,一个用于月份,另一个用于年份.我建议将字段名称从月份更改为其他内容.我不确定但它可能会发生冲突.我希望这有帮助..!

编辑:要显示过去5年,请在"表单"构建器中

   $builder->add(
     'month',
     'date',
     array(
        'years' => range(date('Y'), date('Y')-5)
        'label' => 'Month & year',
        'input' => 'array',
        'widget' => 'choice',
     ));
Run Code Online (Sandbox Code Playgroud)