Symfony登录表单导航到导航栏

时间:2018-02-01 22:35:35

标签: forms symfony login twig symfony4

我想通过位于顶部的导航栏创建一个可从所有网站获得的登录表单。点击“登录”,打开登录表单下拉列表。我仍然不知道如何继续,我在我的下拉列表中使用了渲染枝条功能,我得到了我的登录表单,但出了点问题: 当我没有登录时,我获得了一个简单的登录表单错误(正常),但只有它,而不是网站的其他部分,而且提示“website / login”也将我重定向到这个登录表单。

我的文件是:

#/ src / Controller / SecurityController.php

#函数进入“类SecurityController扩展Controller”

/**
 * @Route("/login", name="login")
 */
public function loginAction(Request $request, AuthenticationUtils $authUtils)
{
    if ($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_REMEMBERED')) 
    {
        return $this->redirectToRoute('homepage');
    }

    // get the login error if there is one
    $error = $authUtils->getLastAuthenticationError();

    // last username entered by the user
    $lastUsername = $authUtils->getLastUsername();

    return $this->render(
                        'security/login.html.twig',
                        array(
                            // last username entered by the user
                            'last_username' => $lastUsername,
                            'error'         => $error,
                        )
                    );
}

“navbar.html.twig”中使用的树枝功能是:

{{ render(controller('App\\Controller\\SecurityController::loginAction')) }}

“login.html.twig”如下所示:

{% if error %}
    <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}

<form action="{{ path("login_check") }}" method="post">
    <div>
        <input type="text" required="required" id="username" name="_username" value="{{ last_username }}" placeholder="Adresse email" />
    </div>

    <div>
        <input type="password" required="required" id="password" name="_password" placeholder="Mot de passe" />
    </div>

    <div>
        <input type="checkbox" id="_remember_me" name="_remember_me" checked />
        <label for="_remember_me">Se souvenir de moi</label>
    </div>

    <div>
        <button type="submit" name="login">Se connecter</button>
    </div>
</form>

可以做我想要的吗? (没有ajax?)

0 个答案:

没有答案