Risposte:
Nella tua classe, inserisci la classe Message ManagerInterface:
__construct(\Magento\Framework\Message\ManagerInterface $messageManager) {
$this->messageManager = $messageManager;
}
Nota, Magento ha metodi obsoleti :
$this->messageManager->addSuccess()
$this->messageManager->addError()
$this->messageManager->addWarning()
$this->messageManager->addNotice()
Quindi invece dovresti usare:
$this->messageManager->addSuccessMessage()
$this->messageManager->addErrorMessage()
$this->messageManager->addWarningMessage()
$this->messageManager->addNoticeMessage()
Se si utilizza un controller, molto probabilmente è stato esteso
\Magento\Framework\App\Action\Action
Ciò inietta l' \Magento\Framework\Message\ManagerInterface
oggetto nella sua __construct
funzione usando l' \Magento\Framework\App\Action\Context $context
oggetto
Quindi per visualizzare un messaggio,
Successo -
$ this-> messageManager-> addSuccess (__ ('Questo è il tuo messaggio di successo.'));
Errore -
$ this-> messageManager-> addError (__ ('Questo è il tuo messaggio di errore.'));
Avvertimento -
$ this-> messageManager-> addWarning (__ ('Questo è il tuo messaggio di avviso.'));
Avviso
$ this-> messageManager-> addNotice (__ ('Questo è il tuo messaggio di avviso.'));
All'interno di altre classi
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');
}
}
Per quanto ho notato, Magento2 ha rimosso i messaggi di notifica specifici della classe di sessione.