これがあなたが探しているものかどうかはわかりませんが、試してみます。
次のようなメッセージを取得できます。
$messages = $this->messageManager->getMessages(true);
どこmessageManagerのインスタンスです\Magento\Framework\Message\ManagerInterface。
コアでは、これはajax呼び出しに使用され、次のようにJSON応答でエラーメッセージを返します(\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
]);
出力を伴うアクションの場合、何もすべきではありません(私は思う)。モジュールのdefault.xmlレイアウトファイルには、メッセージを処理するMagento_Themeこのブロック<block class="Magento\Framework\View\Element\Messages" name="messages" as="messages" template="Magento_Theme::messages.phtml"/>が既に含まれています。
[サイドノート]:を
使用しないでください$this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($message)。コンストラクタにのインスタンスを注入し、Magento\Framework\Escaperそれを使用します。