簡體   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