不确定这是否是您要的内容,但是我正在尝试一下。
您可以像这样检索消息:
$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
并使用它。