【问题标题】:Symfony2 and Twig form rendering in if - else conditionSymfony2 和 Twig 表单在 if - else 条件下渲染
【发布时间】:2017-01-26 09:00:29
【问题描述】:

在我的 Symfony 2 应用程序中,我得到了呈现表单的以下代码:

{{ form_start(form) }}
 {{ form_errors(form) }}
  <div class="form-group">
     {{ form_label(form.title) }}
     {{ form_widget(form.title) }}
  </div>
  <div class="form-group">
     {{ form_label(form.message) }}
     {{ form_widget(form.message) }}
  </div>
  {% if extras == true %} //this block should be rendered only if extras var is true
    <div class="form-group">
       {{ form_label(form.description) }}
       {{ form_widget(form.description) }}
    </div>
  {% endif %}
{{ form_end(form) }}

问题是即使我的 extras var 为假,我也会呈现 {{ form_widget(form.description) }},而不是所有其他表单字段,而是表单底部的某个地方,这显然是一个错误。如何使其仅在额外内容为真时才呈现,并在额外内容为假的情况下从页面中完全消失? 谢谢。

【问题讨论】:

    标签: php symfony symfony-forms


    【解决方案1】:

    默认情况下,所有其他表单字段都会自动添加到表单的末尾。它默认触发{{ form_rest() }}。使用此代码来防止这种行为:

    {{ form_end(form, {'render_rest': false}) }}
    

    http://symfony.com/doc/current/reference/forms/twig_reference.html#form-end-view-variables

    【讨论】:

    • 它有效,谢谢。顺便说一句,它在表单底部留下了空白空间,它在前面呈现了不需要的表单字段。你不知道怎么解决这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2012-04-09
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多