0

在注册页面(以及所有其他页面)上,我想在页面上有登录部分..

我这样做的方式是;

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

{% block login %}
{% render "FOSUserBundle:Security:login" %}
{%  endblock %}

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

正确显示所有内容。当我成功登录时,它会登录并转到正确的页面。但是,当我输入密码错误时,它不会在同一页面上显示错误消息,而是转发到 /login 页面。我怎样才能防止这种情况发生并在当前页面上显示错误消息。

-login.html.twig;

{% block fos_user_content %}
{% if error %}
<div>{{ error|trans({}, 'FOSUserBundle') }}</div>
{% endif %}

<div id="HeaderLogin">
    <form action="{{ path("fos_user_security_check") }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />

        <div id="HeaderLoginEmail">
            <input type="text" id="username" class="txtHeaderLogin" placeholder="Email" name="_username" required="required" /><br />
            <a class="Blue" href="/profile/change-password">Forgot Email?</a>
        </div>

        <div id="HeaderLoginPassword">
            <input class="txtHeaderLogin" placeholder="Password" type="password" id="password" name="_password" required="required" /><br />
            <a class="Blue" href="/profile/change-password"> Forgot Password?</a>
        </div>

        <div id="HeaderLoginButton">
            <input type="submit" class="btnHeaderLogin" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
        </div>
    </form>
</div>
{% endblock fos_user_content %}
4

1 回答 1

1

这是正常行为。当您提交登录表单时,将调用登录操作。处理您的请求后,它会将您重定向到与您的路线不同的登录路线。

这是一个已知问题https://github.com/FriendsOfSymfony/FOSUserBundle/issues/399并且已经在此处询问FOSUserBundle: embedding the login form and selection its template

但实际上创建自己的登录检查并不难。

于 2013-02-07T12:22:20.733 回答