Reputation: 89
I'm working on website but I have an error when I go to 'http://localhost/Tolkien_Bestiaire/web/app_dev.php/profile/'
error :
"Variable "error" does not exist in FOSUserBundle::layout.html.twig at line 5"
I use 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 (The controller of the extand to layout.html.twig) :
<?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');
}
}
Thanks :)
Upvotes: 4
Views: 2097
Reputation: 552
Solution is to wrap error in another if:
{% if error is defined %}
{% if error %}
... do something with error message
{% endif %}
{% endif %}
in Login's Twig template.
Upvotes: 2