在学习Symfony时,我在AppController
中进行了修改后收到了此消息。
传递给Symfony \ Component \ Form \ FormBuilder :: add()的参数2必须为 类型为字符串或null,给定数组,在 C:\ wamp64 \ www \ eHiring \ src \ Controller \ AppController.php在第49行
我的App控制器代码如下:
public function formulaire()
{
$application = new Applications();
$form = $this->createFormBuilder($application)
->add("poste", [
'attr' => [
'class' => 'form-control'
]
])
->add("pdf")
->getForm();
return $this->render('app/form.html.twig', [
'form' => $form->createView(),
]);
}
在我为表单添加class属性的参数之前一切都很好,这就是导致问题的原因。
我找不到问题所在。
我的Twig代码是:
{{ form_start(form) }}
<div class="form-group">
<label for="">Poste</label>
{{ form_widget(form.poste)}}
</div>
<div class="form-group">
<label for="">PDF</label>
{{ form_widget(form.pdf)}}
</div>
{{ form_end(form) }}
答案 0 :(得分:1)
您应该避免在控制器中创建表单的所有选项。按照文档所述创建一个新文件: https://symfony.com/doc/current/forms.html
创建formBuilder时,必须说明您将添加的内容。例如,让我们假装“ poste”是一个字符串。在您的表单中,它将是:
$builder
->add('poste', TextType::class, [
'attr' => ['class' => 'form-control']
如果使用Bootstrap,则不需要“ form-control”。只需对Twig说您使用Bootstrap,他就会帮您完成。
我给您的文档写得很好,您将能够创建良好的工作形式和可读性表格。