带有bootstrap的symfony2 fosUserbundle输入类型

时间:2014-07-23 13:10:29

标签: forms twitter-bootstrap symfony widget fosuserbundle

我是symfony2的新手,我已经设法实现了fosUserBundle和Braincrafted bootstrap bundle。

我正在尝试设置注册表单的样式以使用引导带和input-sm

的输入

用户名和电子邮件显示为input-sm但是2个密码字段拒绝调整大小到我已应用的类。

在fosUserbundle中的哪个地方配置了密码字段小部件

{% trans_default_domain 'FOSUserBundle' %}

    {{ form_start(form, { 'style': 'horizontal', 'col_size': 'xs', 'label_col': 5, 'widget_col': 7, attr: {class: 'pull-left'}}) }}
    {{ form_row(form.username, { attr: {class: 'input-sm'}}) }}
    {{ form_row(form.email, { attr: {class: 'input-sm'}}) }}
    {{ form_row(form.plainPassword, { attr: {class: 'input-sm'}}) }}
    {{ form_row(form.plainPassword.second, { attr: {class: 'input-sm'}}) }}
    <div class="col-sm-5"></div>
    <div class="col-sm-7">
        <input class="btn-primary btn-sm" type="submit" value="{{ 'registration.submit'|trans }}" />
    </div>
    {{ form_rest(form) }}
    {{ form_end(form) }}

1 个答案:

答案 0 :(得分:0)

FosUserBundle与否,您可以直接覆盖Twig表单渲染以实现此目的,请查看SF cookbook中的How to customize form rendering

基本上,你可以通过将form_row分成标签,小部件和错误来更精确地在模板中更精确地定位输入(下面的“form_widget”)并应用正确的类:

{{ form_errors(form.plainPassword) }}
{{ form_label(form.plainPassword) }}
{{ form_widget(form.plainPassword) }}

您还可以直接在模板中对其进行贴图,为所需的输入类型生成自己的表单样式:

{% form_theme form _self %}
{% block integer_widget %}
     <div class="integer_widget">
         // Your custom layout
     </div>
{% endblock %}

{% Block body %}
    // Rendering your form, your custom layout will be used.
{% endblock %}

如果您想在其他地方使用它,您也可以在单独的模板中声明它,请参阅上面的食谱页面以了解具体方法。