在 Symfony2 表单中使用函数 return 值作为选择选项

Using function return values for choices option at Symfony2 form

我有这个 Symfony2 表单:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add(
            'nombre',
            'text',
            array(
                'required' => true,
                'mapped'   => false,
                'label'    => 'Nombre'
            )
        )
        ->add(
            'anno_modelo',
            'choice',
            array(
                'placeholder'   => 'Escoja una opción',
                'choices'       => array(),
                'required'      => true
            )
        )
        ->add(
            'anno_fabricacion',
            'choice',
            array(
                'placeholder'   => 'Escoja una opción',
                'choices'       => array(),
                'required'      => true
            )
        );
}

我有这个代码:

function getChoices() {
    $choices = [];
    for($i = date("Y"); $ >= 1900; $i--) {
        $choices[$i - 1] = $i - 1;
    }

    return $choices;
}

我需要将 $choices 用作 choices 值,我该如何实现?

试试这个代码:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $choices = $this->getChoices();
    $builder
        ->add(
            'nombre',
            'text',
            array(
                'required' => true,
                'mapped'   => false,
                'label'    => 'Nombre'
            )
        )
        ->add(
            'anno_modelo',
            'choice',
            array(
                'placeholder'   => 'Escoja una opción',
                'choices'       => $choices,
                'required'      => true
            )
        )
        ->add(
            'anno_fabricacion',
            'choice',
            array(
                'placeholder'   => 'Escoja una opción',
                'choices'       => $choices,
                'required'      => true
            )
        );
}

private function getChoices() 
{
    $choices = [];
    for($i = date('Y'); $i >= 1900; $i--) {
        $choices[$i - 1] = $i - 1;
    }

    return $choices;
}