您好,我正在尝试查看(从得出结论后)如何验证其中之一'choices' => $question->buildAnswerWithValidKey()是正确的。这是问题数组。Array( [Sonne] => 1 [Mond] => [Und Sterne] => )我试图在表格被提出后对此进行验证。这是我的'choices'功能。根据具有正确密钥的问题(在这种情况下为1或0,是/否),它会得到答案。 public function buildAnswerWithValidKey() { $answers = []; $valid = []; $answersWithValidKey = []; /** @var Answer $answer */ foreach ($this->getAnswers() as $answer) { $answers[] = $answer->getAnswer(); $valid[] = $answer->getValid(); } //Sets answers as item and valid as key as required by 'choices' $answersWithValidKey[] = array_combine($answers, $valid); return $answersWithValidKey; }这是我的控制器。我在努力验证单选按钮的位置。 /** @var Question $question */ $question = $this->questionRepository->findById(12)[0]; $options = ['question' => $question]; $form = $this->createForm(ExamType::class, null, $options); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { } return [ 'form' => $form->createView(), ];这是我可能有帮助的其他课程。Answer.php-ManyToOne映射到的位置。
1 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
通常,要从表单中检索数据,您必须$form->getData()在处理完请求并检查其是否有效之后调用。
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$answerData = $form->getData();
if (!empty($answerData['Answers'] )) {
// do something useful
}
}
但是,表单将根据其buildForm()方法返回数据内容,而数据对象将尝试将其放入其中,这是由中的data_class选项定义的FormType。如果要在数组中返回结果,data_class则应为null。(因此也必须设置此值,alternate是一个对象,以某种方式对返回值进行编码)
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消