从Symfony表单发送选择值而不是选择键

时间:2016-10-25 17:11:14

标签: symfony symfony-forms

我需要从Symfony发送 ChoiceType :: class

但我不需要选择键,我需要发送选择值。

这可能吗?

 $form->add('section', ChoiceType::class, array(
                'mapped' => false,
                'choices' => array(
                    1 => 'value1',
                    2 => 'value2'

                ),
          ));

如果我选择 value1

,我只想发送value1

不是键1 作为默认值。

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用

array_flip ($array)

refer to php docs

答案 1 :(得分:1)

[自Symfony 2.7起]无论如何,您可以通过choice_value选项和关闭函数(Reference)来玩选择值:

$form->add('section', ChoiceType::class, array(
    'choice_value' => function ($value, $key, $index) {
        return $value;
    } 
));

适用于动态choices

答案 2 :(得分:0)

你只需要扭转它。另外,我认为你不需要'映射'。 试试这个:

$form->add('section', ChoiceType::class, array(
            'choices' => array(
                'value1' => 1,
                'value2' => 2,

            ),
      ));

它应该有用。