在注册页面(以及所有其他页面)上,我想在页面上有登录部分..
我这样做的方式是;
{% 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.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 %}
答案 0 :(得分:1)
这是正常行为。当您提交登录表单时,将调用登录操作。处理完您的请求后,它会将您重定向到与您的路线不同的登录路线。
这是一个知道问题https://github.com/FriendsOfSymfony/FOSUserBundle/issues/399,此处已经问过FOSUserBundle: embedding the login form and choosing its template
但实际上创建自己的登录检查并不困难。