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.