Không chắc đây có phải là thứ bạn đang tìm không, nhưng tôi sẽ cho nó một shot.
Bạn có thể truy xuất các tin nhắn như thế này:
$messages = $this->messageManager->getMessages(true);
nơi messageManager
là một thể hiện của \Magento\Framework\Message\ManagerInterface
.
Trong lõi, điều này được sử dụng cho các cuộc gọi ajax để trả về các thông báo lỗi trong phản hồi json như thế này ( \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
]);
Đối với các hành động với đầu ra, bạn không nên làm bất cứ điều gì (tôi nghĩ). Tệp default.xml
bố cục từ Magento_Theme
mô-đun đã chứa khối này <block class="Magento\Framework\View\Element\Messages" name="messages" as="messages" template="Magento_Theme::messages.phtml"/>
sẽ xử lý các thông báo.
[Ghi chú bên cạnh]:
Không sử dụng $this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($message)
. Tiêm vào hàm tạo của bạn một thể hiện Magento\Framework\Escaper
và sử dụng nó.