No estoy seguro de si esto es lo que estás buscando, pero lo estoy probando.
Puede recuperar los mensajes como este:
$messages = $this->messageManager->getMessages(true);
dónde messageManager
es una instancia de \Magento\Framework\Message\ManagerInterface
.
En el núcleo, esto se usa para llamadas ajax para devolver los mensajes de error en la respuesta 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 acciones con salida no deberías hacer nada (creo). El default.xml
archivo de diseño de laMagento_Theme
módulo ya contiene este bloque <block class="Magento\Framework\View\Element\Messages" name="messages" as="messages" template="Magento_Theme::messages.phtml"/>
que debe manejar los mensajes.
[Nota al margen]:
No usar $this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($message)
. Inyecte en su constructor una instancia de Magento\Framework\Escaper
y use eso.