gpt4 book ai didi

symfony - 使用 Bootstrap 自定义注册 FOSUserBundle

转载 作者:行者123 更新时间:2023-12-02 05:09:09 24 4
gpt4 key购买 nike

我创建了一个 Form builder.php,就像在 bootstrap 文档中一样,以构建我的登录表单和注册表单,就像这样:http://bootstrap.braincrafted.com/base-css#forms但接下来我发现了 FOSUserBundle,我认为使用它可能是个好主意。问题是:我不能简单地重用之前创建的表单。

我想使用 bootstrap 自定义 FOSUser 模板。特别是对于提交按钮,我想为所有按钮添加:class="btn primary large"

我创建了一个覆盖 FOSUserBundle 的 UserBundle。

我在FOSUserBundle中自定义了login.html.twig,在UserBundle/Ressources/Views/Security/login.html.twig中放了一个login.html.twig

这很容易,因为登录模板只有一个文件。

但是,例如,我如何才能在注册部分做到这一点?

有两个文件:register.html.twig 和 register_content.html.twig

所以我在我的 UserBundle 中创建了一个 Registration 文件夹,并放入了这两个文件。

但是,我输入了什么来改变提交按钮的样式?

在 register.html.twig 我让:

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

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

在 register_content.html.twig 中:

<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_widget(form) }}
<div>
<input class="btn primary large" type="submit" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}" />
</div>
</form>

但这是行不通的。

您认为使用该 bundle 是一个好的解决方案吗? https://github.com/CCETC/FOSUserBundle

它直接集成了所有具有 Bootstrap 风格的表单。

但是如果有一天我想在注册表中添加一个字段(例如性别),我可以在这个包中添加,就像原来的 FOSUserBundle 一样吗?

知道我想在注册表单中添加一些自定义字段,并使用 Bootstrap 自定义表单,我想知道使用 FOSUserBundle 是个好主意还是构建一个我自己的新包来管理我网站上的用户。

最佳答案

这是我如何操作的完整示例(助推器模式 :P,您可以适应简单的 html 或其他框架)。您必须查看表单的末尾,并注意“{{ form_rest(form) }}”这是 symfony 如何绘制 token 的代码

<!-- BEGIN REGISTRATION FORM -->
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
<h3 class="font-green">Register Form</h3>
<div class="form-group">
{{ form_widget(form.username, { 'attr': {'class': 'form-control placeholder-no-fix', 'placeholder':'User Name'} }) }}
{% for errorItem in form.username.vars.errors %}
<span class="help-inline">{{ errorItem.message }}</span>
{% endfor %}
</div>
<div class="form-group">
{{ form_widget(form.email, { 'attr': {'class': 'form-control', 'placeholder':'E-mail'} }) }}
{% for errorItem in form.email.vars.errors %}
<span class="help-inline">{{ errorItem.message }}</span>
{% endfor %}
</div>
<div class="form-group">
{{ form_widget(form.plainPassword.first, { 'attr': {'class': 'form-control', 'placeholder':'Password'} }) }}
{% for errorItem in form.plainPassword.first.vars.errors %}
<span class="help-inline">{{ errorItem.message }}</span>
{% endfor %}
</div>
<div class="form-group">
{{ form_widget(form.plainPassword.second, { 'attr': {'class': 'form-control', 'placeholder':'Repeat Password'} }) }}
{% for errorItem in form.plainPassword.second.vars.errors %}
<span class="help-inline">{{ errorItem.message }}</span>
{% endfor %}
</div>
<div class="form-actions">
<a class="btn btn-default" href="{{ path('fos_user_security_login') }}">Back to login</a>
<button type="submit" id="register-submit-btn" class="btn btn-success">Submit</button>
</div>
{{ form_rest(form) }}
{{ form_end(form) }}
<!-- END REGISTRATION FORM -->

关于symfony - 使用 Bootstrap 自定义注册 FOSUserBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15783882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com