Twig:删除表单

时间:2016-07-29 16:43:15

标签: twig symfony

编辑:请参阅我在问题末尾找到的解决方案;-)

我正在寻找一个解决方案的时间,但我真的没有找到我喜欢的东西。我确信这很容易做到。

我正在使用Symfony 3.1构建表单。我的表单不会在数据库中发送任何内容。一切似乎都没问题。但是在渲染我的树枝模板时,我的所有复选框都被<div> html标记包围。

我只是希望twig向我呈现一个没有<div>标记的表单。 编辑:这是Twig渲染我的:这对我来说没问题,但我想删除div标签

<form name="form" method="post">
<div id="form"><div><label for="form_1">1</label><input type="checkbox" id="form_1" name="form[1]" class="ballsCheckBox" value="1" /></div>
</form>

这是我的树枝模板:

{% extends "::base.html.twig" %}

{% block title %}SimulotoBundle:Lotto:lotto{% endblock %}

{% block body %}
<h1>Welcome to the Lotto:result page</h1>
{{form(form)}}

{% endblock %}

我直接在控制器中构建表单。看见:     公共函数LottoSimulationFormAction()

   {
        $lt = new LottoSimulation();

        $data = [];

        $formBuilder = $this->createFormBuilder($data);

        /** building Lotto grid with checkboxes * */
        for ($i = 1; $i <= $lt->getMaxNb(); $i++)
        {
            $formBuilder->add($i, CheckboxType::class, [
                'label' => $i,
                'required' => false,
                'attr' => [
                    'class' => 'ballsCheckBox'
                ]
            ]);
        }

        /** adding submit button **/
        $formBuilder->add('Envoyer', SubmitType::class, [
            'attr' => [
                'class' => 'save'
                ]
            ]);

        $form = $formBuilder->getForm();

        return $this->render("SimulotoBundle:Lotto:lotto.html.twig", [
            "form" => $form->createview()
                ]);
    }
}

1 个答案:

答案 0 :(得分:1)

这是解决这个问题的解决方案。

我需要自定义表单呈现,因为此页面上的Synfony cookBook中对此进行了解释http://symfony.com/doc/current/form/form_customization.html

转到vendor \ Symfony \ Bridge \ Twig \ Ressources \ views \ Form \ form_div_layout.html并修改块:

{%- block form_row -%}
    <div>
        {{- form_label(form) -}}
        {{- form_errors(form) -}}
        {{- form_widget(form) -}}
    </div>
{%- endblock form_row -%}

您可以删除它,但更好的方法是将该块复制/过去到您的teplate并覆盖它。像这样:

{% extends "::base.html.twig" %}

{% form_theme form _self %} //don't forget this line of code

{%- block form_row -%}
        {{- form_label(form) -}}
        {{- form_errors(form) -}}
        {{- form_widget(form) -}}
{%- endblock form_row -%}