이것이 당신이 찾고있는 것인지 확실하지 않지만, 나는 그것을 쐈습니다.
다음과 같은 메시지를 검색 할 수 있습니다.
$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
하고 사용하십시오.