首页 > 解决方案 > 新行上的 Symfony 表单小部件

问题描述

我在 Symfony 5.2 中渲染一个表单,并希望将每个 Textarea 输入小部件框放在标签下方。目前它出现在标签的右侧。我有一个 PHP 实体,其字段定义为 type="text"。这由 PHP 表单类型使用:

class InputForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('field1', TextareaType::class)
        ->add('field2', TextareaType::class)
        ->add('save', SubmitType::class)
    ;
}

控制器使用实体创建一个新表单并调用一个 twig 文件,该文件仅包含 {{ form(form) }} 来呈现表单。

我假设我需要在 twig 文件中做更多的事情来自定义表单的呈现方式,并且我看到有一个 form_widget() 函数,但我不知道如何使用它来将小部件移动到下一行。(而且我还希望能够自定义小部件的高度和宽度)。

提前感谢您的帮助,如果上述内容不清楚,我很乐意详细说明。在我看来,这当然是不必要的复杂。

标签: formssymfony

解决方案


最简单的就是添加一个

label { display: block }

规则到你的 CSS

否则,您可以覆盖表单主题以在标签周围添加一个 div 容器,here,或者只是将标签元素更改为 div。


推荐阅读