[英]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.