Метод all класса FlashBag
Метод all класса FlashBag возвращает
все flash-сообщения, которые были добавлены в сессию.
После вызова метода сообщения удаляются из flash-пакета,
то есть при следующем запросе они уже не будут доступны.
Метод не принимает параметров и возвращает ассоциативный
массив, где ключами являются типы сообщений
(например, 'success', 'error'), а значениями -
массивы строк с самими сообщениями.
Синтаксис
public function all(): array
Пример
Давайте добавим несколько flash-сообщений и получим их
через метод all:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationRequest;
class ArticleController extends AbstractController
{
public function index(Request $request): Response
{
$session = $request->getSession();
$flashBag = $session->getFlashBag();
$flashBag->add('success', 'article created');
$flashBag->add('success', 'article published');
$flashBag->add('error', 'article not found');
$res = $flashBag->all();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"success":["article created","article published"],"error":["article not found"]}
Пример
Давайте проверим, что после вызова метода all
flash-сообщения очищаются:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationRequest;
class ArticleController extends AbstractController
{
public function index(Request $request): Response
{
$session = $request->getSession();
$flashBag = $session->getFlashBag();
$flashBag->add('success', 'hello');
$first = $flashBag->all();
$second = $flashBag->all();
return new Response(json_encode([$first, $second]));
}
}
?>
Результат выполнения кода:
[{"success":["hello"]},[]]