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, он будет использоваться так же, как и другие Элементы и Представления.