为什么在向表单添加属性时出现错误?

时间:2020-11-02 07:07:00

标签: php symfony

在学习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) }}

1 个答案:

答案 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,他就会帮您完成。

我给您的文档写得很好,您将能够创建良好的工作形式和可读性表格。