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

Метод has класса FlashBag

Метод has класса FlashBag проверяет, есть ли во flash-хранилище сообщения по указанному ключу. Первым параметром передаётся имя ключа типа string. Метод возвращает true, если сообщения есть, и false в противном случае. В отличие от метода get, метод has не извлекает сообщения из хранилища.

Синтаксис

public function has(string $key): bool

Пример

Давайте добавим flash-сообщение и проверим его наличие по ключу 'notice':

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $flashBag = $this->getRequest()->getSession()->getFlashBag(); $flashBag->add('notice', 'article saved'); $res = $flashBag->has('notice'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим наличие сообщений по ключу, которого нет во flash-хранилище:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/user', name: 'article_user')] public function user(): Response { $flashBag = $this->getRequest()->getSession()->getFlashBag(); $flashBag->add('notice', 'user created'); $res = $flashBag->has('warning'); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте используем метод has в шаблоне Twig перед выводом flash-сообщений:

{% if app.flashes.has('notice') %} <div class="notice"> {% for message in app.flashes('notice') %} <p>{{ message }}</p> {% endfor %} </div> {% endif %}

Результат выполнения кода для добавленного сообщения 'article saved':

<div class="notice"> <p>article saved</p> </div>

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

  • класс FlashBag,
    который хранит flash-сообщения сессии
  • метод add,
    который добавляет flash-сообщение по ключу
  • метод get,
    который извлекает flash-сообщения по ключу
  • метод peek,
    который читает flash-сообщения без удаления
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить