Respostas:
Na sua classe, injete a classe Message ManagerInterface:
__construct(\Magento\Framework\Message\ManagerInterface $messageManager) {
$this->messageManager = $messageManager;
}
Observe que o Magento descontinuou os métodos :
$this->messageManager->addSuccess()
$this->messageManager->addError()
$this->messageManager->addWarning()
$this->messageManager->addNotice()
Então, em vez disso, você deve usar:
$this->messageManager->addSuccessMessage()
$this->messageManager->addErrorMessage()
$this->messageManager->addWarningMessage()
$this->messageManager->addNoticeMessage()
Se você estiver usando um controlador, provavelmente você ampliou
\Magento\Framework\App\Action\Action
Isso injeta o \Magento\Framework\Message\ManagerInterface
objeto em sua __construct
função usando o \Magento\Framework\App\Action\Context $context
objeto
Então, para exibir uma mensagem,
Sucesso -
$ this-> messageManager-> addSuccess (__ ('Esta é a sua mensagem de sucesso.'));
Erro -
$ this-> messageManager-> addError (__ ('Esta é a sua mensagem de erro.'));
Atenção -
$ this-> messageManager-> addWarning (__ ('Esta é a sua mensagem de aviso.'));
Aviso prévio
$ this-> messageManager-> addNotice (__ ('Esta é a sua mensagem de aviso.'));
Dentro de outras classes
class Dummy
{
/**
* @var \Magento\Framework\Message\ManagerInterface
*/
private $messageManager;
public function __construct(\Magento\Framework\Message\ManagerInterface $messageManager)
{
$this->messageManager = $messageManager;
}
public function someFunction()
{
$this->messageManager->addSuccess('Add your success message');
}
}
Até onde eu notei, o Magento2 removeu as mensagens de notificação específicas da classe da sessão.