繁体   English   中英

第5行的FOSUserBundle :: layout.html.twig中不存在变量“error”

[英]Variable “error” does not exist in FOSUserBundle::layout.html.twig at line 5

我正在网站上工作但是当我去' http://localhost/Tolkien_Bestiaire/web/app_dev.php/profile/ '时我有一个错误

错误:

第5行的FOSUserBundle :: layout.html.twig中不存在“变量”错误“

我使用FosUserBundle。

layout.html.twig

{% extends "TolkienCoreBundle::layout.html.twig" %}

{% block body %}

    {% if error %}
        <div class="alert alert-danger">{{ error.message }}</div>
    {% endif %}

    <form action="{{ path('fos_user_security_check') }}" method="post" id="loginForm">
        <label for="username">Pseudo :</label><br/>
        <input type="text" id="username" name="_username" value="{{ last_username }}" class="col-md-4"/><br/><br/>

        <label for="password" class="col-md-12">Mot de passe :</label><br/>
        <input type="password" id="password" name="_password" class="col-md-4"/><br/><br/>

        <input type="submit" value="Connexion" class="col-md-4" />
    </form>

{% endblock %}

security.yml:

    security:
  encoders:
    Tolkien\UserBundle\Entity\User: sha512

  role_hierarchy:
    ROLE_ADMIN:       [ROLE_AUTEUR, ROLE_MODERATEUR]
    ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

  providers:
    main:
      id: fos_user.user_provider.username

  firewalls:
    dev:
      pattern: ^/(_(profiler|wdt)|css|images|js)/
      security: false
    main:
      pattern:      ^/
      anonymous:    true
      provider:     main
      form_login:
        login_path: fos_user_security_login
        check_path: fos_user_security_check
        default_target_path: tolkien_bestiaire_home
      logout:
        path:       fos_user_security_logout
        target:     /tolkien
      remember_me:
        secret:     %secret%



  access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }

CoreController.php (对layout.html.twig的extand的控制器):

    <?php

namespace Tolkien\CoreBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;

class CoreController extends Controller
{
    public function indexAction()
    {
        return $this->render('TolkienCoreBundle:Core:index.html.twig');
    }

    public function contactAction(Request $request)
    {
        $session = $request->getSession();
        $session->getFlashBag()->add('info', 'La page de contact n’est pas encore disponible, merci de revenir plus tard.');

        return $this->redirectToRoute('tolkien_core_home');

    }
}

谢谢 :)

解决方法是将错误包装在另一个中:

{% if error is defined %}
{% if error %}
... do something with error message
{% endif %}
{% endif %}

在Login的Twig模板中。

暂无
暂无

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

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