如何在symfony2中选择一年

Car*_*tru 2 symfony

我想做一个显示从1960年到今年的选择,所以在我提交之后我应该有一个字符串如:1989.

我试过这样但它不起作用:

 ->add('years', 'date', array(
                'widget' => 'choice',
                'format' => 'yyyy-MM-dd',
                'years'       => range(date('Y'), date('Y') - 30, -1)))
Run Code Online (Sandbox Code Playgroud)

fel*_*ins 7

这很容易.
如果在提交表单后你想要一个年份字符串,那么自1960年以来就生成一系列年份,如下所示:

class MyClassType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('year',
                'Symfony\Component\Form\Extension\Core\Type\ChoiceType',[
                'choices' => $this->getYears(1960)
            ])
            # or (for symfony <= 2.7):
            # ->add('year', 'choice', ['choices' => $this->getYears(1960)])

        ;
    }

    private function getYears($min, $max='current')
    {
         $years = range($min, ($max === 'current' ? date('Y') : $max));

         return array_combine($years, $years);
    }
}
Run Code Online (Sandbox Code Playgroud)

模板:

在此输入图像描述

表格提交后:

在此输入图像描述