Symfony2形成如何为选择输入字段设置类?

时间:2014-01-04 20:11:28

标签: php forms class symfony

如上所述如何为输入字段设置类?

到目前为止:表单构建器类:

    $builder->add('rate', 'choice', array(
                'choices' => array(
                    1 => 1,
                    2 => 2,
                    3 => 3,
                    4 => 4,
                    5 => 5,
                ),
                'multiple' => false,
                'expanded' => true,
                'attr' => array('disabled' => 'disabled', 'class' => 'star'),
            ))
            ->add('save', 'submit');

所以这一行:

'attr' => array('disabled' => 'disabled', 'class' => 'star'),

设置潜水课程而不是每个输入比例按钮

这里生成的html:

<form action="/app_dev.php/pl/applications/vote/Google%20Earth%20DirectX" method="post">

    <div id="vote_rate"     disabled="disabled" class="star"><label class="radio"><input type="radio" id="vote_rate_0" name="vote[rate]" required="required"    class="" value="1" />
            1
        </label><label class="radio"><input type="radio" id="vote_rate_1" name="vote[rate]" required="required"    class="" value="2" />
            2
        </label><label class="radio"><input type="radio" id="vote_rate_2" name="vote[rate]" required="required"    class="" value="3" checked="checked" />
            3
        </label><label class="radio"><input type="radio" id="vote_rate_3" name="vote[rate]" required="required"    class="" value="4" />
            4
        </label><label class="radio"><input type="radio" id="vote_rate_4" name="vote[rate]" required="required"    class="" value="5" />
            5
        </label></div>
  <div><button type="submit" id="vote_save" name="vote[save]">Save</button></div><input type="hidden" id="vote__token" name="vote[_token]"    class=" not-removable form-control" value="35bc6584f16d20796946cac15f9e18e62dec3cab" />
</form>

我们可以看到我的构建器正在为div vote_rate设置类,我的输入字段为class="",我希望它为class="star",我的问题是如何设置它建设者或其他方式?

2 个答案:

答案 0 :(得分:0)

如果要设置输入字段类,则将其置于无线电窗口小部件

在我的表单模板中我添加了:

{% form_theme form 'ApplicationsBundle:Form:fields.html.twig' %}

这是我的fields.html.twig:

{% block radio_widget %}
{% spaceless %}
<input type="radio" class="star" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} disabled="disabled"/>
{% endspaceless %}
{% endblock radio_widget %}

也要使其成功,您需要将表单称为:

{{ form_widget(form) }}

答案 1 :(得分:0)

choice_attr选项允许您为每个选项添加属性(包括类)(示例中为radio)。

        'choice_attr' => function($val, $key, $index) {
            return ['disabled' => 'disabled', 'class' => 'star'];
        },

您可以使用$val$key$index来确定要返回的内容。