This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release!

Мгновенные сообщения

class Cake\View\Helper\FlashHelper(View $view, array $config = [])

FlashHelper предоставляет способ визуализации мгновенных сообщений, которые сохраняются в $_SESSION с использованием FlashComponent. FlashComponent и FlashHelper в основном используют элементы для отображения мгновенных сообщений. Элементы мгновенных сообщений находятся в папке src/Template/Element/Flash. Заметьте, что шаблон приложения CakePHP предоставляется с тремя готовыми элементами мгновенных сообщений: success.ctp, default.ctp, и error.ctp.

Отображение мгновенных сообщений

Для отображения мгновенного сообщения используется метод render() из FlashHelper в файле шаблона:

<?= $this->Flash->render() ?>

По умолчанию CakePHP использует ключ «flash» для мгновенных сообщений в сессии. Но, если был указан ключ при установке мгновенного сообщения в FlashComponent, можно указать какой из ключей мгновенного сообщения отображать:

<?= $this->Flash->render('other') ?>

Также можно переопределить любой из параметров, которые были установлены во FlashComponent:

// в Контроллере
$this->Flash->set('The user has been saved.', [
    'element' => 'success'
]);

// В файле шаблона: будет использован great_success.ctp вместо succcess.ctp
<?= $this->Flash->render('flash', [
    'element' => 'great_success'
]);

Примечание

При создании пользовательских шаблонов мгновенных сообщений, необходимо убедиться, что HTML-код правильно обрабатывает пользовательские данные. CakePHP не экранирует параметры мгновенных сообщений за вас.

Добавлено в версии 3.1: FlashComponent теперь ставит сообщения в очередь. Если установлены несколько мгновенных сообщений, при вызове render() каждое сообщение будет отображать свои собственные элементы в том порядке, в каком они были установлены.

Для дополнительной информации о доступных параметрах массива, обратитесь в раздел FlashComponent.

Префикс маршрутизации и мгновенные сообщения

Добавлено в версии 3.0.1.

Если у вас сконфигурирован префикс маршрутизации, Flash элементы могут храниться в src/Template/{Prefix}/Element/Flash. Таким образом, вы можете хранить конкретные шаблоны сообщений для каждой части вашего приложения. Например, используя различные щаблоны для пользовательского интерфейса и интерфейса администратора.

Мгновенные сообщения и темы

FlashHelper использует обычные элементы для отображения сообщений и таким образом будет соответствовать любой теме, которая будет указана. Таким образом, когда у темы есть файл src/Template/Element/Flash/error.ctp, он будет использоваться так же, как и другие Элементы и Представления.