将属性分配给Symfony 2形成无线电类型

时间:2014-01-03 05:14:09

标签: symfony

我正在使用angularjs,为此我需要将ng-model分配给我的无线电领域。

但是,使用form_widget,所有属性都分配给容器(div)而不是实际输入字段。我已经覆盖了radio_widget块,但不太确定如何从表单小部件中将属性传递给此radio_widge?

2 个答案:

答案 0 :(得分:1)

谢谢mr1031011,

我的错。我仔细检查过它,最后你需要覆盖form_div_layout.html.twig - 你可以在http://symfony.com/doc/current/cookbook/form/form_customization.html找到更多关于扩展表单布局的信息。

我已将attr添加到其中一个块中 - 它现在似乎正在运行。

{% block choice_widget_expanded %}
{% spaceless %}
    <div {{ block('widget_container_attributes') }}>
    {% for child in form %}
        {{ form_widget(child, { 'attr': {'class': 'subclass', 'rel': 'test'} }) }}
        {{ form_label(child) }}
    {% endfor %}
    </div>
{% endspaceless %}
{% endblock choice_widget_expanded %}

核心和我的代码之间唯一的区别是, { 'attr': {'class': 'subclass', 'rel': 'test'} }。当然,你可以通过添加一些选项来概括这部分,例如subattr或类似的东西,但在这个例子中你可以找到一个想法。

我希望这会有所帮助

问候。

答案 1 :(得分:0)

在官方网站上你可以找到

{{ form_widget(form.task, { 'attr': {'class': 'task_field'} }) }}

毕竟它可能看起来像:

<div>
    {{ form_label(form.name) }}
    {{ form_errors(form.name) }}
    {{ form_widget(form.name, { 'attr': {'class': 'task_field'} }) }}
</div>

这是提供此功能的最简单方法。另一方面,您可以为无线电字段创建自己的模板并添加所需的属性。

问候。