Basic Usage
A typical use case is to set a flash message in a controller action and render it in a view script after a redirect. The following example shows the use of a success message.
Before starting, make sure laminas-mvc-plugin-flashmessenger is installed and configured.
Create a Flash Message
Store a message in the messenger of a controller action, e.g. module/Album/Controller/AlbumController.php
:
namespace Album\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
class AlbumController extends AbstractActionController
{
public function editAction()
{
// Do some work…
// Add success message
$this->flashMessenger()->addSuccessMessage(
'Album created successfully.'
);
// Redirect
return $this->redirect()->toRoute('album');
}
}
Render a Flash Message
Render all added success messages in a view script, e.g. module/Album/view/album/album/index.phtml
:
<?= $this->flashMessenger()->render('success') ?>
<?= $this->flashMessenger()->render(
Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger::NAMESPACE_SUCCESS
) ?>
Output:
<ul class="success"><li>Album created successfully.</li></ul>
Usage of Namespaces
The flash messenger supports namespaces. This allows to render messages of different types in different places.
Create Flash Messages for Different Namespaces
Store a success
message in the messenger of a controller action:
$this->flashMessenger()->addSuccessMessage('…');
Store an info
message in the messenger of a controller action:
$this->flashMessenger()->addInfoMessage('…');
Store a warning
message in the messenger of a controller action:
$this->flashMessenger()->addWarningMessage('…');
Store an error
message in the messenger of a controller action:
$this->flashMessenger()->addErrorMessage('…');
Render Flash Messages for Different Namespaces
Render all added success
messages in a view script:
<?= $this->flashMessenger()->render('success') ?>
<?= $this->flashMessenger()->render(
Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger::NAMESPACE_SUCCESS
) ?>
Render all added info
messages in a view script:
<?= $this->flashMessenger()->render('info') ?>
<?= $this->flashMessenger()->render(
Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger::NAMESPACE_INFO
) ?>
Render all added warning
messages in a view script:
<?= $this->flashMessenger()->render('warning') ?>
<?= $this->flashMessenger()->render(
Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger::NAMESPACE_WARNING
) ?>
Render all added error
messages in a view script:
<?= $this->flashMessenger()->render('error') ?>
<?= $this->flashMessenger()->render(
Laminas\Mvc\Plugin\FlashMessenger\FlashMessenger::NAMESPACE_ERROR
) ?>
Use Default Namespace
The flash messenger supports a default namespace which does not represent an explicit status.
Store a default
message in the messenger of a controller action:
$this->flashMessenger()->addMessage('…');
Render all added default
messages in a view script:
<?= $this->flashMessenger()->render() ?>