为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
牛魔王的故事 2021-04-07 13:15:11
您好,我正在尝试查看(从得出结论后)如何验证其中之一'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是一个对象,以某种方式对返回值进行编码)


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信