您好,我正在嘗試查看(從得出結論后)如何驗證其中之一'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 關注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消