【问题标题】:Symfony splitted embedded formSymfony 拆分嵌入表单
【发布时间】:2018-01-06 15:13:37
【问题描述】:

我使用 symfony 嵌入式表单来管理给定实体的翻译字段。我的主体实体有一个布尔字段,每个翻译都有多个文本字段。

我不使用可翻译学说扩展,也不想使用它。

在我的 FormType 中,我使用 CollectionType 将翻译后的字段嵌入到我的表单中,在模板中,我使用表单主题来自定义 HTML。

这是我的问题:我想对表单中的字段进行分组以优化用户体验,但是一旦我在字段上调用 ​​form_widget,我就无法再次使用它。我想显示给定语言的 2 个字段,然后在表单中进一步显示另一种语言的另一个字段。我该如何解决我的问题?

这是一个说明我的问题的树枝示例。

{% form_theme form _self %}

{% block _service_translations_entry_widget %}
<div>
    {% if name == 0 %}
    <div class="s12 m6 l6">
        {{ form_label(form.title) }}
        {{ form_errors(form.title) }}
        {{ form_widget(form.title) }}
    </div>

    <div class="s12 m6 l6">
        {{ form_label(form.subtitle) }}
        {{ form_errors(form.subtitle) }}
        {{ form_widget(form.subtitle) }}
    </div>
    {% endif %}

    {% if name == 1 %}
    <div class="s12 m12 l12">
        {{ form_label(form.desc) }}
        {{ form_errors(form.desc) }}
        {{ form_widget(form.desc) }}
    </div>
    {% endif %}
</div>
{% endblock %}

{% block body %}

{{ form_start() }}
{{ form_errors(form) }} 

<div>
    <div class="s12 m12 l12">
        {{ form_label(form.doubleBlock) }}
        {{ form_errors(form.doubleBlock) }}
        {{ form_widget(form.doubleBlock) }}
    </div>
</div>

<div id="block-1">
    {{ form_widget(form.translations) }}
</div>

<div>
    <div class="s12 m6 l6">
        {{ form_label(form.activedStyle) }}
        {{ form_errors(form.activedStyle) }}
        {{ form_widget(form.activedStyle) }}
    </div>

    <div class="s12 m6 l6">
        {{ form_label(form.checkoutOption) }}
        {{ form_errors(form.checkoutOption) }}
        {{ form_widget(form.checkoutOption) }}
    </div>
</div>

<div id="block-2">
    {{ form_widget(form.translations) }}
</div>

{{ form_widget(form.save) }}

{{ form_rest(form) }}
{{ form_end(form) }}

{% 端块体 %}

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

    正如你所说,你不能重用一个字段。

    我建议的方法是在表单中添加一个额外的字段,translations_extra,它既不映射到实体,也不由实体持久保存。在表单提交时提取控制器中的数据,然后在持久化之前将其添加到翻译集合中。

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2014-03-08
      • 1970-01-01
      相关资源
      最近更新 更多