猿问

检查加总单选按钮是否为真-Symfony

您好,我正在尝试查看(从得出结论后)如何验证其中之一'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映射到的位置。


牛魔王的故事
浏览 139回答 1
1回答

料青山看我应如是

通常,要从表单中检索数据,您必须$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是一个对象,以某种方式对返回值进行编码)
随时随地看视频慕课网APP
我要回答