In Magento2, how do we print the input data into notification messages for - Error - Success - Warning - Notice
2 Answers
In your class, inject the Message ManagerInterface class:
protected $messageManager;
__construct(\Magento\Framework\Message\ManagerInterface $messageManager) {
$this->messageManager = $messageManager;
}
Note, Magento has deprecated methods:
$this->messageManager->addSuccess()
$this->messageManager->addError()
$this->messageManager->addWarning()
$this->messageManager->addNotice()
So instead you should use:
$this->messageManager->addSuccessMessage()
$this->messageManager->addErrorMessage()
$this->messageManager->addWarningMessage()
$this->messageManager->addNoticeMessage()
-
Would this also work during the onepage checkout, where "everything" is javascript?– peedeeCommented May 9, 2017 at 9:06
-
Apparently the "page.messages" section gets removed from the checkout through the checkout_index_index.xml file, so messages will not be shown there. I wonder why Magento built it that way.– peedeeCommented May 11, 2017 at 3:34
If you are using a controller, then most probably you have extended
\Magento\Framework\App\Action\Action
This injects the \Magento\Framework\Message\ManagerInterface
object in its __construct
function using the \Magento\Framework\App\Action\Context $context
object
So to display a message,
Success -
$this->messageManager->addSuccess( __('This is your success message.') );
Error -
$this->messageManager->addError( __('This is your error message.') );
Warning -
$this->messageManager->addWarning( __('This is your warning message.') );
Notice
$this->messageManager->addNotice( __('This is your notice message.') );
Inside other 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');
}
}
So as far as i have noticed, Magento2 has removed session class specific notification messages.
-
2Magento has deprecated these add<type>() methods. See my answer.– StanleyCommented Oct 20, 2016 at 15:38
-
2I have a problem with message, when I add to cart it show success message but when I access to another page it still show that message. How can I remove it when it show at least once time? Commented Jan 11, 2017 at 2:55