Symfony3:为什么选择提交关键文本而不是它的值

Symfony3: Why choices submit key text instead of its value

Symfony 版本 3.1.3

我正在从数据库生成一个选项列表,如下所示,它工作正常。

class ClassType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('class',
                      EntityType::class,
                      array('class'         => 'PIE10Bundle:Classes',
                            'expanded'      => false,
                            'multiple'      => false,));
        // some other form elements
    }    
}

在网页中它给出 HTML Select 如下所示,

<select name="class[class]" id="class_class">
    <option value="6">1A</option>
    <option value="7">4C</option>
</select>

在控制器中,我正在获取提交的数据并按如下方式进行调试,

if( $form->isSubmitted() && $form->isValid() )
{
    $cName  = $form['class']->getData();
    echo $cName;
    die;
}

我的结果是 1A4C(取决于选择)但不是 67。 我希望获得选择列表的值,但不是其关键文本。

我想知道这是怎么发生的以及如何解决这个问题以获得价值。此外,我还有另一个相同形式的选择列表,但它提交了预期值。

谢谢

试试

$cName->getId() 

我想 $cNamePIE10Bundle:Classes 实体的实例(尝试转储 get_class($cName))并且回显打印名称,因为它是作为 __toString 实现的方法。

希望对您有所帮助