2013-02-07 186 views
0

在註冊頁面(以及所有其他網頁),我想在頁面上登錄部分FOSUser捆綁登錄部分..在註冊頁面

我做的事情是這樣的;

{% 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 %} 

回答

1

這是正常行爲。當您提交登錄表單時,會調用登錄操作。處理完您的請求後,它會將您重定向到與您的路線不同的登錄路線。

這是一個已知問題https://github.com/FriendsOfSymfony/FOSUserBundle/issues/399這裏已經問FOSUserBundle: embedding the login form and choosing its template

但實際上它不是努力創造自己的登錄檢查。

+0

有人推薦這個但它似乎沒有工作.. – myTD

+0

如果你想要這種的自定義,然後製作自己的註冊/登錄操作和模板。如果您需要幫助,請提出另一個問題(作爲提示,您可以使用FOSUserbundle UserManager) –