Não tenho certeza se é isso que você está procurando, mas estou tentando.
Você pode recuperar as mensagens assim:
$messages = $this->messageManager->getMessages(true);
Onde messageManager
é uma instância de \Magento\Framework\Message\ManagerInterface
.
No núcleo, isso é usado para chamadas ajax para retornar as mensagens de erro na resposta json como esta ( \Magento\Catalog\Controller\Adminhtml\Category\Move
):
$block = $this->layoutFactory->create()->getMessagesBlock();
...
$block->setMessages($this->messageManager->getMessages(true));
$resultJson = $this->resultJsonFactory->create();
return $resultJson->setData([
'messages' => $block->getGroupedHtml(),
'error' => $error
]);
Para ações com saída, você não deve fazer nada (eu acho). O default.xml
arquivo de layout do Magento_Theme
módulo já contém esse bloco <block class="Magento\Framework\View\Element\Messages" name="messages" as="messages" template="Magento_Theme::messages.phtml"/>
que deve lidar com as mensagens.
[Nota lateral]:
não use $this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($message)
. Injete no seu construtor uma instância Magento\Framework\Escaper
e use-a.