Messaggi di notifica Magento2


19

In Magento2, come stampare i dati di input nei messaggi di notifica per - Errore - Operazione riuscita - Avviso - Avviso

Risposte:


33

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()

Funzionerebbe anche durante il checkout onepage, dove "tutto" è javascript?
Peedee,

Apparentemente la sezione "page.messages" viene rimossa dal checkout attraverso il file checkout_index_index.xml, quindi i messaggi non verranno mostrati lì. Mi chiedo perché Magento l'abbia costruita in quel modo.
Peedee,

17

Se si utilizza un controller, molto probabilmente è stato esteso

\Magento\Framework\App\Action\Action

https://github.com/magento/magento2/blob/develop/lib/internal/Magento/Framework/App/Action/Action.php

Ciò inietta l' \Magento\Framework\Message\ManagerInterfaceoggetto nella sua __constructfunzione usando l' \Magento\Framework\App\Action\Context $contextoggetto

Quindi per visualizzare un messaggio,

  1. Successo -

    $ this-> messageManager-> addSuccess (__ ('Questo è il tuo messaggio di successo.'));

  2. Errore -

    $ this-> messageManager-> addError (__ ('Questo è il tuo messaggio di errore.'));

  3. Avvertimento -

    $ this-> messageManager-> addWarning (__ ('Questo è il tuo messaggio di avviso.'));

  4. 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.


1
Magento ha deprecato questi metodi add <type> (). Vedi la mia risposta
Robert Stanley,

1
Ho un problema con il messaggio, quando lo aggiungo al carrello mostra un messaggio di successo ma quando accedo ad un'altra pagina mostra ancora quel messaggio. Come posso rimuoverlo quando viene mostrato almeno una volta?
Henry Bui,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.