Réponses:
Dans votre classe, injectez la classe Message ManagerInterface:
__construct(\Magento\Framework\Message\ManagerInterface $messageManager) {
$this->messageManager = $messageManager;
}
Remarque, Magento a des méthodes obsolètes :
$this->messageManager->addSuccess()
$this->messageManager->addError()
$this->messageManager->addWarning()
$this->messageManager->addNotice()
À la place, vous devez utiliser:
$this->messageManager->addSuccessMessage()
$this->messageManager->addErrorMessage()
$this->messageManager->addWarningMessage()
$this->messageManager->addNoticeMessage()
Si vous utilisez un contrôleur, alors vous avez probablement étendu
\Magento\Framework\App\Action\Action
Cela injecte l' \Magento\Framework\Message\ManagerInterface
objet dans sa __construct
fonction en utilisant l' \Magento\Framework\App\Action\Context $context
objet
Donc pour afficher un message,
Succès -
$ this-> messageManager-> addSuccess (__ ('Ceci est votre message de réussite.'));
Erreur -
$ this-> messageManager-> addError (__ ('Ceci est votre message d'erreur.'));
Avertissement -
$ this-> messageManager-> addWarning (__ ('Ceci est votre message d'avertissement.'));
Remarquer
$ this-> messageManager-> addNotice (__ ('Ceci est votre message de notification.'));
À l'intérieur d'autres 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');
}
}
Donc, pour autant que je l'ai remarqué, Magento2 a supprimé les messages de notification spécifiques à la classe de session.