如何修复 FOSUserBundle 提交?

Posted

技术标签:

【中文标题】如何修复 FOSUserBundle 提交?【英文标题】:How to fix FOSUserBundle submitting? 【发布时间】:2020-01-05 19:11:45 【问题描述】:

我尝试覆盖模板,但无法提交表单。当我单击提交按钮时,数据将保存到 URL。当我删除我的模板并使用默认值时,一切正常。我没有覆盖 RegistrationController。

Symfony v4.3.4

我的 register_content.html.twig
% trans_default_domain 'FOSUserBundle' %

<section class="sign-in">
    <div class="container">
        <div class="row">
            <div class="col-12 col-sm-10 col-md-8 col-lg-6 offset-sm-1 offset-md-2 offset-lg-3 top-negative">
                <h1 class="text-center"> 'registration.title'|trans </h1>
                <form class="sign-in-form mt-74">
                    <div class="row">
                         form_start(form, 'method': 'POST', 'action': path('fos_user_registration_register')) 
                            <div class="col-12 col-sm-6 mb-20">
                                 form_widget(form.email, 'label': false,'attr': 'class': 'form-input', 'placeholder': 'registration.email_reg'|trans) 
                            </div>
                            <div class="col-12 col-sm-6 mb-20">
                                 form_widget(form.plainPassword.first, 'label': false,'attr': 'class': 'form-input', 'placeholder': 'registration.password'|trans) 
                            </div>
                            <div class="col-12 col-sm-6 mb-20">
                                 form_widget(form.plainPassword.second, 'label': false,'attr': 'class': 'form-input', 'placeholder': 'registration.repeat_password'|trans) 
                            </div>
                            <div class="col-12 col-sm-6 mb-20">
                                 form_widget(form.firstname, 'label': false,'attr': 'class': 'form-input', 'placeholder': 'registration.first_name'|trans) 
                            </div>
                            <div class="col-12 col-sm-6 mb-20">
                                 form_widget(form.lastname, 'label': false,'attr': 'class': 'form-input', 'placeholder': 'registration.last_name'|trans) 
                            </div>
                            <div class="col-12 col-sm-6 mb-20">
                                 form_widget(form.tel, 'label': false,'attr': 'class': 'form-input', 'placeholder': 'registration.tel'|trans ) 
                            </div>
                            <div class="col-12 text-center">
                                 form_widget(form.submit, 'attr': 'class': 'button button-dark') 
                            </div>
                         form_end(form) 
                    </div>
                </form>
            </div>
        </div>
    </div>
</section>
我的 layout.html.twig
% extends 'base.html.twig' %

% block main %
    % block fos_user_content %
    % endblock fos_user_content %
% endblock %

【问题讨论】:

【参考方案1】:

您有 2 个表单打开标签。 &lt;form class="sign-in-form mt-74"&gt; 和用 form_start(form, 'method': 'POST', 'action': path('fos_user_registration_register')) 创建的那个(同样两个表单标签关闭)。

您可以在 form_start 标记中添加您的 class="sign-in-form mt-74"

... 'method': 'post', 'action': path('....'), 'attr': 'class': 'sign-in-form mt-74 ' ...

【讨论】:

以上是关于如何修复 FOSUserBundle 提交?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据库角色添加到 FOSUserBundle

如何使用 FOSUserBundle 强制更改密码?

带有 RESTful 身份验证的 Symfony2 应用程序,使用 FOSRestBundle 和 FOSUserBundle

Symfony2:如何实现自定义用户登录和注册——摆脱 FOSUSerBundle

如何轻松登录、Symfony2 Security、FOSUserBundle、FOSRestBundle?

如何在Symfony 3中覆盖FOSUserBundle的ProfileController?