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 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;
}
我的结果是1A
或4C
(取决于选择),但不是6
或7
。
我希望得到选择列表的值,而不是它的关键文本。
我想知道这是怎么发生的以及如何解决这个问题以获得价值。此外,我有相同形式的另一个选择列表,但它提交了预期值。
由于
答案 0 :(得分:2)
尝试
$cName->getId()
我认为$cName
是PIE10Bundle:Classes
实体的一个实际值(尝试转储get_class($cName)
)并且echo打印名称,因为它是作为__toString
方法实现的。
希望这个帮助