繁体   English   中英

变量“错误”不存在 - Symfony

[英]Variable "error" does not exist - Symfony

我在 Symfony 开发了一个网站。 但是当我 go 到我的登录页面(symfony 表单)时,我有这个错误:变量“错误”不存在。

我对“last_username”变量有同样的错误。 你对这个问题有任何想法吗?

这是错误:

错误页面连接

这是页面:

{% extends ('main/base.html.twig') %}

{% block body %}
    <div class="container rounded shadow">
        <form method="post">
            {% if error  %}
                <div class="alert alert-danger mt-4">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
            {% endif %}

            {% if app.user %}
                <div class="mb-3">
                    You are logged in as {{ app.user.username }}, <a href="{{ path('app_logout') }}">Logout</a>
                </div>
            {% endif %}
            <div class="row">
                <div class="col-sm-9 col-md-7 col-lg-6 my-5 mx-auto">
                    <div class="card login-form">
                        <div class="card-body">
                            <h3 class="card-title text-center">Connexion</h3>
                            <div class="card-text">
                                <div class="form-group">
                                    <label for="emailoupseudo">Email ou Pseudo</label>
                                    <input type="text" class="form-control form-control-sm" id="emailoupseudo"
                                           value="{{ last_username }}" name="pseudo_ou_email" required autofocus>
                                </div>
                                <div class="form-group">
                                    <label for="motdepasse">Mot de passe</label>
                                    <input type="password" class="form-control form-control-sm" id="motdepasse"
                                           name="password" required>

                                    <input type="hidden" name="_csrf_token"
                                           value="{{ csrf_token('authenticate') }}">
                                    <a href="#"
                                       style="float:left;font-size:12px; margin-bottom: 25px; margin-top: 5px">Mot de
                                        passe
                                        oublié</a>
                                </div>

                                {#
                                Uncomment this section and add a remember_me option below your firewall to activate remember me functionality.
                                See https://symfony.com/doc/current/security/remember_me.html

                                <div class="checkbox mb-3">
                                    <label>
                                        <input type="checkbox" name="_remember_me"> Remember me
                                    </label>
                                </div>
                                #}

                                <button type="submit" class="btnsubmit btn btn-primary btn-block mb-3">OK
                                </button>

                                <div class="inscription text-center">
                                    Pas encore de compte ? <a href="inscription">S'inscrire</a>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </form>
    </div>
{% endblock %}

检查您的 controller 的登录路径。 有一个error变量传递给 twig,在您的情况下似乎缺少该变量。

它应该如下所示(取自symfony 文档):

class SecurityController extends AbstractController
{
    /**
     * @Route("/login", name="app_login")
     */
    public function login(AuthenticationUtils $authenticationUtils): Response
    {
        // if ($this->getUser()) {
        //     return $this->redirectToRoute('target_path');
        // }

        // get the login error if there is one
        $error = $authenticationUtils->getLastAuthenticationError();
        // last username entered by the user
        $lastUsername = $authenticationUtils->getLastUsername();

        return $this->render('security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]);
    }

    /**
     * @Route("/logout", name="app_logout")
     */
    public function logout()
    {
        throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM