复选框实体字段类型返回空值

时间:2014-02-12 18:28:40

标签: forms validation symfony checkbox entity

我有一个表单,可以将测验的可能答案列入选择字段(复选框)

问题是当我检查一些框并提交我的表格时,我得到一个空的结果,而不是获取复选框值...

这是我的表单类型:

namespace MyApp\QuizzBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class QuizzType extends AbstractType
{

  public function buildForm(FormBuilderInterface $builder, array $options)
  {

$builder
  ->add('reponses', 'entity', array(
        'class'=>'QuizzBundle:Reponses',
        'property'=>'titre',
        'multiple'=>true,
        'expanded'=>true,
        'required'=>true
  ))
;
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
     $resolver->setDefaults(array(
    'data_class'=>'MyApp\QuizzBundle\Entity\Quizz'
));
}

public function getName()
{
   return 'myapp_quizztype';
}
}

但如果我尝试没有'启用'=> true我也可以选择多个答案,我可以在我的控制器中获取它们的值......

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

因此您已将实体映射到表单,因此$ form-> getData()将为null。如果您的quizz实体有一个名为'响应' (与您的表单字段名称相同)您可以在创建表单时在传入的实体中找到您的数据。

$form = $this->createForm(new QuizzType(), $quiz);

$form->handleRequest($request);

if ($form->isValid()) {
    $selected = $quiz->getResponses();  //you will find the selected responses this way.
}