Symfony形成只有值的ChoiceType

时间:2016-12-29 09:14:09

标签: symfony drop-down-menu symfony-forms

Symfony documentation表示你应该像这样使用ChoiceType:

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

$builder->add('isAttending', ChoiceType::class, array(
    'choices'  => array(
        'Maybe' => null,
        'Yes' => true,
        'No' => false,
    ),
));

但是,由于我的价值观很简单,就像键一样,我想做这样的事情:

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

$builder->add('titre', ChoiceType::class, array(
    'choice_value'  => array(
        'Pr', 'Dr', 'Mr', 'Mrs'
    ),
))

我怎样才能做到这一点?

如果我不能,背后的理由是什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用array_combine创建相同的键/值数组:

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

$choices = array('Pr', 'Dr', 'Mr', 'Mrs');

$builder->add('isAttending', ChoiceType::class, array(
    'choices'  => array_combine($choices, $choices),
));

答案 1 :(得分:1)

A Symfony-ish way

$builder->add('isAttending', ChoiceType::class, array(
    'choices' => array('Pr', 'Dr', 'Mr', 'Mrs'),
    'choice_label' => function ($value) { return $value; },
));