0

自 symfony2 2.0 以来,表单构建器类型实体是否发生了巨大变化?因为这段代码用来返回我所有类型为“BizTVContainerManagementBundle:ContainerSize”的实体的列表,现在什么都不返回,除了那个空值的东西......

没有错误信息。我使用 {{ form_widget(form) }} 呈现表单,因此视图中没有任何变化......

    $builder            
        ->add('mainContent', 'entity', array(
            'label' => 'Välj storlek på mainContent (kan inte ändras i efterhand). Endast de företag som har denna storlek på sitt mainContent kommer att få åtkomst till denna layoutmall. ',
            'property' => 'select_label',
            'class' => 'BizTVContainerManagementBundle:ContainerSize',
            ))  

* 更新 *

Soo... 事实证明它毕竟在视图中,因为我对另一个表单控件进行了一些自定义渲染(不是我丢失数据的那个)。

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

{% form_theme form _self %}

{% block choice_widget %}
{% spaceless %}
{% if expanded %}
    <div {{ block('widget_container_attributes') }}>
    {% for child in form %}
        {{ form_widget(child) }}
        {{ form_label(child) }}
        <br />          {# <-------- Here's my addition to the template #}
    {% endfor %}
    </div>
{% else %}
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
    {% if empty_value is not none %}
        <option value="">{{ empty_value|trans }}</option>
    {% endif %}
    {% if preferred_choices|length > 0 %}
        {% set options = preferred_choices %}
        {{ block('widget_choice_options') }}
        {% if choices|length > 0 and separator is not none %}
            <option disabled="disabled">{{ separator }}</option>
        {% endif %}
    {% endif %}
    {% set options = choices %}
    {{ block('widget_choice_options') }}
</select>
{% endif %}
{% endspaceless %}
{% endblock choice_widget %}

{% block contents %}

<h1>Skapa ny skärmlayout</h1>
<div class="t_wrap">
    <form action="{{ path('createLayoutTemplate') }}" method="post" {{ form_enctype(form) }} novalidate>
        {{ form_widget(form) }}
        <p>
            <button type="submit" class="green">Skapa</button>
        </p>
    </form>

    <p>
    När du har redigerat formulär- och vy-filerna (som skapas då du klickar "skapa"), och testat att de fungerar buggfritt så behöver du klicka 'edit' på denna template och kryssa i "produktion", först då blir mallen valbar vid skapande av innehåll.
    </p>

    <a href="{{ path('listLayoutTemplates') }}"><button>Tillbaka</button></a>
</div>

{% endblock %}

而且我发现这需要在 2.3 版本的 symfony2 中以不同的方式完成(我生活在 2.0 版本中)。大惊喜?哈哈……没有了。

我会回来解决如何解决它,我找到了一些文档......

4

1 回答 1

0

...我发现我实际上在半年前在这里symfony2 twig 引用基本小部件时倒退了同样的问题

所以这就是结果。

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

{% form_theme form _self %}

{% block choice_widget_expanded %}
{% spaceless %}
    <div {{ block('widget_container_attributes') }}>
    {% for child in form %}
        {{ form_widget(child) }}
        {{ form_label(child) }}
        <br />
    {% endfor %}
    </div>
{% endspaceless %}
{% endblock choice_widget_expanded %}

{% block contents %}

<h1>Skapa ny skärmlayout</h1>
<div class="t_wrap">
    <form action="{{ path('createLayoutTemplate') }}" method="post" {{ form_enctype(form) }} novalidate>
        {{ form_widget(form) }}
        <p>
            <button type="submit" class="green">Skapa</button>
        </p>
    </form>

    <p>
    När du har redigerat formulär- och vy-filerna (som skapas då du klickar "skapa"), och testat att de fungerar buggfritt så behöver du klicka 'edit' på denna template och kryssa i "produktion", först då blir mallen valbar vid skapande av innehåll.
    </p>

    <a href="{{ path('listLayoutTemplates') }}"><button>Tillbaka</button></a>
</div>

{% endblock %}
于 2013-10-07T12:33:39.067 回答