我的表单中有多个复选框。我需要设置每个复选框的样式'标签。我想要做的是用choice_label_attr
字段下面的代码描述的:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('type', ChoiceType::class, array(
'expanded' => true,
'multiple' => false,
'choices' => array(
'Friend' => 'friend',
'Guide' => 'guide'
),
// Invalid code, it serves for demonstration purposes
'choice_label_attr' => array(
'class' => 'btn'
)
));
}
如何实现这种效果?
可以在树枝模板中写下这样的内容:
{{ form_label(form.name, 'Your Name', {'label_attr': {'class': 'foo'}}) }}
但是,这种技术很容易出现代码重复。
答案 0 :(得分:3)
choice_label_attr
选项可能是symfony 3.1的一部分。
您可以看到PR here
答案 1 :(得分:1)
我有同样的问题,我在.twig文件中设置了样式。 所以我的表格看起来像这样:`
<div class="field">
<div class="foo">
{{ form_label(form.quantity) }}
{{ form_errors(form.quantity) }}
{{ form_widget(form.quantity) }}
</div>
</div>
<div class="field">
{{ form_label(form.amount) }}
{{ form_errors(form.amount) }}
{{ form_widget(form.amount) }}
</div>`
你也可以这样做:
<div class="field">
<div = class="foo">
{{ form_row(form.quantity) }}
</div>
</div>
<div class="field">
{{ form_row(form.amount) }}
</div>
以下是Symfony Doc:Twig Template Form Function and Variable Reference
直接向字段标签添加类:在Ressources中创建目录以覆盖FOSUserbundle的模板。 Ressources-&GT; FOSUserbundle-&GT;&则须─GT;安全 - &GT; login.html.twig 这是我登录页面的代码。您可能必须为每个表单执行此操作。
{% extends "FOSUserBundle::layout.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block fos_user_content %}
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
<form action="{{ path("fos_user_security_check") }}" method="post">
<div class="field">
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
</div>
<div class="field">
<label for="username">{{ 'security.login.username'|trans }}</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
</div>
<div class="field">
<label for="password">{{ 'security.login.password'|trans }}</label>
<input type="password" id="password" name="_password" required="required" />
</div>
<div class="field">
<input type="checkbox" id="remember_me" name="_remember_me" value="on" />
<label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>
</div>
<div class="field">
<input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />
</form>
{% endblock fos_user_content %}
答案 2 :(得分:0)
使用
'label_attr' => array(
'class' => 'btn'
)
而不是
'choice_label_attr' => array(
'class' => 'btn'
)