FOSUserBundle:覆盖 Twig 模板:添加 HTML 元素元素、模板、FOSUserBundle、Twig

2023-09-07 09:42:49 作者:Dreams°凉兮

我正在使用 FOSUserBundle,我想在注册表单中添加一些 HTML 元素.实际上,我做到了,我可以在我的表单中看到添加到 User 类的属性.问题是我希望这些字段(名字、姓氏、出生日期等)能够获得我的 CSS 模板(引导程序)的外观.我通过覆盖登录页面成功地做到了这一点,因为 HTML 是显式声明的.我想对注册页面做同样的事情,但是我觉得很困惑,因为这里的内容是:

I'm using FOSUserBundle, and I want to add a few HTML elements to the registration form. Actually, I did and I can see the added properties to the User class in my form. The issue is that I want those fields (first name, last name, date of birth, etc..) to get the look and feel of my CSS template (bootstrap). I succeeded to do that for the login page by overriding it, since the HTML are explicitly declared. I want to do the same for the register page, however it seems confused to me, because here's the content of :

register.html.twig

{% 扩展FOSUserBundle::layout.html.twig"%}

{% extends "FOSUserBundle::layout.html.twig" %}

{% 块 fos_user_content %}{% 包括FOSUserBundle:Registration:register_content.html.twig"%}{% endblock fos_user_content %}

{% block fos_user_content %} {% include "FOSUserBundle:Registration:register_content.html.twig" %} {% endblock fos_user_content %}

register_content.html.twig

{% trans_default_domain 'FOSUserBundle' %}

{% trans_default_domain 'FOSUserBundle' %}

如何通过这段代码访问我在页面中看到的元素?

How can I access to the elements that I see in the page from this code ?

推荐答案

试试这个

<div class="form-group {% if form.plainPassword.first.vars.errors %}has-error{% endif %}">
  <label class="col-lg-2 control-label">Password:</label>
  <div class="col-lg-5">
    {{ form_widget(form.plainPassword.first, {'attr': {'class': 'form-control input-lg', 'placeholder': 'Enter password', 'required': 'required'}}) }}
    {% for errorItem in form.plainPassword.first.vars.errors %}
      <label class="control-label has-error" for="{{ form.plainPassword.vars.id }}">{{ errorItem.message }}</label>
    {% endfor %}
  </div>
  <div class="col-lg-5">
    {{ form_widget(form.plainPassword.second, {'attr': {'class': 'form-control input-lg', 'placeholder': 'Enter password again', 'required': 'required'}}) }}
  </div>
</div>

它对我有用.