Solo estoy tratando de encontrar un par de horas para ver cómo funciona el mensaje flash después de la acción de cierre de sesión.Operador de cierre de sesión de Symfony
security.yml
login:
pattern: ^/login$
security: false
secured_area:
pattern: ^/
form_login:
check_path: /check
login_path: /login
failure_handler: authentication_handler
logout:
path: /logout
success_handler: authentication_handler
config.yml
services:
authentication_handler:
class: Project\LoginBundle\Handler\AuthenticationHandler
AuthenticationHandler.php
class AuthenticationHandler implements AuthenticationFailureHandlerInterface, LogoutSuccessHandlerInterface
{
public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
$referer = $request->headers->get('referer');
$request->getSession()->setFlash('error', $exception->getMessage());
return new RedirectResponse($referer);
}
public function onLogoutSuccess(Request $request)
{
$referer = $request->headers->get('referer');
$request->getSession()->setFlash('success', 'Wylogowano');
return new RedirectResponse($referer);
}
}
v IEW hola después de Entrar
{% extends "ProjectCMSBundle:Secured:layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block content %}
<h1>Hello {{ name }}!</h1>
<a href="{{ path('_project_secured_hello_admin', { 'name': name }) }}">Hello resource secured for <strong>admin</strong> only.</a>
{% endblock %}
{% set code = code(_self) %}
vista de formulario de inicio de sesión
{% extends 'ProjectCMSBundle::layout.html.twig' %}
{% block title %}
Title
{% endblock %}
{% block content %}
<form action="{{ path("_project_security_check") }}" method="post" id="login">
<div class="data">
<div class="username">
<label for="username"> </label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />
</div>
<div class="password">
<label for="password"> </label>
<input type="password" id="password" name="_password" />
</div>
</div>
{% if error %}
<div class="error">{{ error.message|trans({},'messages') }}</div>
{% endif %}
<input type="submit" class="submit" />
</form>
{% endblock %}
{% set code = code(_self) %}
composición de la plantilla principal
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="{{ asset('bundles/project/css/demo.css') }}" type="text/css" media="all" />
<title>{% block title %}{% endblock %}</title>
<link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
<div id="symfony-wrapper">
{% if app.session.flash('error') %}
<div class="flash-message">
{{ app.session.flash('error')|trans }}
</div>
{% endif %}
{% if app.session.flash('success') %}
<div class="flash-message">
{{ app.session.flash('success')}}
</div>
{% endif %}
{% if app.user %}
{% block content_header %}
<ul id="menu">
{% block content_header_more %}
{% endblock %}
</ul>
<div style="clear: both"></div>
{% endblock %}
{% endif %}
<div class="symfony-content">
{% block content %}
{% endblock %}
</div>
{#{% if code is defined %}
<h2>Code behind this page</h2>
<div class="symfony-content">{{ code|raw }}</div>
{% endif %}#}
</div>
</body>
El problema es que parece que el mensaje flash es conseguir que deje durante redirección. ¿Hay alguna manera de lograr esto?
Gracias por las respuestas.
¿Puede mostrarnos la vista? – sensorario