我有一个表单,可以将测验的可能答案列入选择字段(复选框)
问题是当我检查一些框并提交我的表格时,我得到一个空的结果,而不是获取复选框值...
这是我的表单类型:
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我也可以选择多个答案,我可以在我的控制器中获取它们的值......
有人可以帮助我吗?
答案 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.
}