Magento2 Bildirim mesajları


19

Magento2'de, giriş verilerini - Hata - Başarı - Uyarı - Bildirim için bildirim mesajlarına nasıl yazdırabiliriz?

Yanıtlar:


33

Sınıfınızda Message ManagerInterface sınıfını enjekte edin:

__construct(\Magento\Framework\Message\ManagerInterface $messageManager) {
    $this->messageManager = $messageManager;
}

Magento, kullanımdan kaldırılmış yöntemlere sahiptir :

$this->messageManager->addSuccess()
$this->messageManager->addError()
$this->messageManager->addWarning() 
$this->messageManager->addNotice()

Bunun yerine şunu kullanmalısınız:

$this->messageManager->addSuccessMessage()
$this->messageManager->addErrorMessage()
$this->messageManager->addWarningMessage() 
$this->messageManager->addNoticeMessage()

Bu, "her şeyin" javascript olduğu sayfadaki ödeme sırasında da çalışır mı?
peedee

Görünüşe göre "page.messages" bölümü, checkout_index_index.xml dosyası aracılığıyla ödeme işleminden kaldırılır, böylece iletiler burada gösterilmez. Merak ediyorum neden Magento bunu böyle yaptı.
peedee

17

Bir denetleyici kullanıyorsanız, büyük olasılıkla

\Magento\Framework\App\Action\Action

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

Bu enjekte \Magento\Framework\Message\ManagerInterfaceonun nesne __constructkullanılarak fonksiyonu \Magento\Framework\App\Action\Context $contextnesne

Bir mesaj görüntülemek için,

  1. Başarı -

    $ this-> messageManager-> addSuccess (__ ('Bu başarı mesajınız.'));

  2. Hata -

    $ this-> messageManager-> addError (__ ('Bu sizin hata mesajınız.'));

  3. Uyarı -

    $ this-> messageManager-> addWarning (__ ('Bu sizin uyarı mesajınız.'));

  4. Farkına varmak

    $ this-> messageManager-> addNotice (__ ('Bu sizin bildirim mesajınız.'));

Diğer sınıfların içinde

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');
  }

}

Bildiğim kadarıyla Magento2, oturum sınıfına özel bildirim mesajlarını kaldırdı.


1
Magento bu add <type> () yöntemlerini kullanımdan kaldırmıştır. Cevabımı gör.
Robert Stanley

1
Mesajla ilgili bir sorunum var, sepete eklediğimde başarı mesajı gösteriyor, ancak başka bir sayfaya eriştiğimde hala bu mesajı gösteriyor. En az bir kez görüntülendiğinde nasıl kaldırabilirim?
Henry Bui
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.