РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
108 of 1361 menu

Атрибут flashes переменной app

Атрибут flashes переменной app в Twig возвращает флеш-сообщения из сессии. Флеш-сообщения - это короткие уведомления, которые показываются пользователю один раз после выполнения действия и затем автоматически удаляются. Атрибут возвращает массив, где ключами являются типы сообщений (например, 'success', 'error', 'warning'), а значениями - массивы текстов сообщений этого типа.

Синтаксис

{% for type, messages in app.flashes %} {% for message in messages %} {{ message }} {% endfor %} {% endfor %}

Если нужно получить сообщения только одного типа, передаётся имя типа:

{% for message in app.flashes('success') %} {{ message }} {% endfor %}

Пример

Давайте добавим флеш-сообщение в контроллере и выведем его в шаблоне. Сначала добавим сообщение через метод addFlash:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $this->addFlash('success', 'article created'); return $this->render('article/index.html.twig'); } } ?>

Теперь выведем сообщение в шаблоне через атрибут flashes:

{% for type, messages in app.flashes %} {% for message in messages %} <p>{{ type }}: {{ message }}</p> {% endfor %} {% endfor %}

Результат выполнения кода:

<p>success: article created</p>

Пример

Давайте добавим несколько сообщений разных типов:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $this->addFlash('success', 'article created'); $this->addFlash('success', 'article published'); $this->addFlash('error', 'article not found'); $this->addFlash('warning', 'article outdated'); return $this->render('article/index.html.twig'); } } ?>

Выведем все сообщения в шаблоне:

{% for type, messages in app.flashes %} <div> <strong>{{ type }}</strong> <ul> {% for message in messages %} <li>{{ message }}</li> {% endfor %} </ul> </div> {% endfor %}

Результат выполнения кода:

<div> <strong>success</strong> <ul> <li>article created</li> <li>article published</li> </ul> </div> <div> <strong>error</strong> <ul> <li>article not found</li> </ul> </div> <div> <strong>warning</strong> <ul> <li>article outdated</li> </ul> </div>

Пример

Давайте выведем сообщения только одного типа 'success':

{% for message in app.flashes('success') %} <p>{{ message }}</p> {% endfor %}

Результат выполнения кода:

<p>article created</p> <p>article published</p>

Смотрите также

  • переменная app,
    которая даёт доступ к глобальным данным приложения
  • атрибут session,
    который даёт доступ к сессии пользователя
  • атрибут request,
    который даёт доступ к текущему запросу
  • тег for,
    который перебирает элементы массива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить