单独渲染选项

时间:2015-02-13 17:14:48

标签: symfony twig symfony-forms

我已经研究了很多并且还阅读了文档,但这件事仍然没有答案。

我想在twig中单独渲染choice-options,而{%for%}循环似乎不起作用。

情况如下:

我有3个单选按钮,每个按钮补充3个不同的html块(因此我不能在段上循环,因为它们不同)。

Form-Extract (form 'payment'):

         array(
                'choices'     => array(
                    'paypal' => 'payment.method.paypal',
                    'bank'   => 'payment.method.bank',
                    'check'  => /** @Ignore */
                ),
                'label'       => 'payment.method',
                'expanded'    => 'true',

如何在树枝中访问不同的选项?我试过了

{{ form_widget(form.payment.method[bank]) }}

以及

{{ form_widget(form.payment.method.bank) }}

非常感谢你的帮助。 Stefffen

1 个答案:

答案 0 :(得分:2)

您可能希望这样做:

{% for method in form.payment %}
    {% if method.vars.value == "paypal" %}
        #Render it in a paypal awesome way
        {{ form_widget(method) }}
        {{ form_label(method) }}
    {% else if method.vars.value == "bank" %}
        #Render it in a bank awesome way
        {{ form_widget(method) }}
        {{ form_label(method) }}
    {% endif %}        
{% endfor %}

希望有所帮助