Odpowiedzi:
W swojej klasie wstaw klasę Message ManagerInterface:
__construct(\Magento\Framework\Message\ManagerInterface $messageManager) {
$this->messageManager = $messageManager;
}
Uwaga, Magento ma przestarzałe metody :
$this->messageManager->addSuccess()
$this->messageManager->addError()
$this->messageManager->addWarning()
$this->messageManager->addNotice()
Zamiast tego powinieneś użyć:
$this->messageManager->addSuccessMessage()
$this->messageManager->addErrorMessage()
$this->messageManager->addWarningMessage()
$this->messageManager->addNoticeMessage()
Jeśli używasz kontrolera, najprawdopodobniej masz rozszerzone
\Magento\Framework\App\Action\Action
Wstrzykuje \Magento\Framework\Message\ManagerInterface
obiekt w jego __construct
funkcji za pomocą \Magento\Framework\App\Action\Context $context
obiektu
Aby wyświetlić wiadomość,
Sukces -
$ this-> messageManager-> addSuccess (__ („To jest twój komunikat sukcesu.”));
Błąd -
$ this-> messageManager-> addError (__ ('To jest twój komunikat błędu.'));
Ostrzeżenie -
$ this-> messageManager-> addWarning (__ („To jest twój komunikat ostrzegawczy.”));
Ogłoszenie
$ this-> messageManager-> addNotice (__ („To jest wiadomość z powiadomieniem.”));
Wewnątrz innych klas
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');
}
}
O ile zauważyłem, Magento2 usunęło powiadomienia dotyczące klas sesji.