在Symfony中我有我的代码的这一部分,我正在构建一个带有一些数据的视图和带有一些单选按钮的表单。提交表单时,我在视图中执行转储以检查已提交的数据,但数据与表单构建的数据不匹配。有人可以帮忙吗?感谢。
public function playAction(Request $request){
$data = $this->getDbQuestion();
$questionData = $data[0];
dump($questionData);
$answerData = $data[1];
dump($answerData);
$form = $this->createFormBuilder($answerData)
->add('answers', ChoiceType::class,
array(
'choices'=> $answerData,
'multiple'=>false,'expanded'=>true,
'choice_label' => 'answer',
))
->add('Submit',SubmitType::class, array('label' => 'Send Answer'))
->getForm();
$form->handleRequest($request);
if($form->isSubmitted()) {
$formData = $form->getData();
return $this->render('QuizViews/correctAnswer.html.twig', array(
'ss' => $formData
));
}
return $this->render('QuizViews/playQuiz.html.twig', array(
'form' => $form->createView(),
'question' => $questionData
));
}
枝条
<a href="/quiz/question">
<input type="button" value="Start Quiz" />
</a>
<br>
FormData Correct {{ dump(ss) }}
答案 0 :(得分:0)
验证表单isSubmitted之后获取数据的调用不正确。你需要像这样打电话:
$formData = $form->get('answers')->getData();
只是得到了答案&#39;仅
编辑#2 您可能还想更改此信息:
->add('answers', ChoiceType::class,
array(
'choices'=> $answerData,
'multiple'=>false,
'expanded'=>true,
'choice_label' => 'answer',
'choice_value' => $answerData,
))
设置&#39; choice_value&#39;,实际从getData()中选择并返回的内容。
你能发贴你的枝条答案文件吗?编辑你的帖子,所以我可以看到。
答案 1 :(得分:0)
聊天后,这可能是答案部分的更好解决方案:
->add('answers', EntityType::class, array(
'class' => 'AppBundle:Answer',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('a')
->where('a.question_id->getId() = :qID')
->setParameter('qID', 1);
},
'multiple'=>false,
'expanded'=>true,
'choice_label' => 'answer',
))
试试吧!