Magento2通知消息


Answers:


33

在您的类中,注入Message ManagerInterface类:

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

请注意,Magento已弃用的方法

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

因此,您应该使用:

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

在“一切”都是javascript的一页结帐过程中,这是否也可以工作?
撒尿人

显然,“ page.messages”部分是通过checkout_index_index.xml文件从结帐中删除的,因此消息不会在此处显示。我不知道为什么Magento会采用这种方式。
撒尿

17

如果您使用的是控制器,那么很可能您已经扩展了

\Magento\Framework\App\Action\Action

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

这使用对象将\Magento\Framework\Message\ManagerInterface对象注入其__construct功能\Magento\Framework\App\Action\Context $context

所以要显示一条消息,

  1. 成功-

    $ this-> messageManager-> addSuccess(__('这是您的成功消息。'));

  2. 错误-

    $ this-> messageManager-> addError(__('这是您的错误信息。'));

  3. 警告 -

    $ this-> messageManager-> addWarning(__('这是您的警告消息。'));

  4. 注意

    $ this-> messageManager-> addNotice(__('这是您的通知消息。'));

在其他班级内

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

}

据我所知,Magento2删除了特定于会话类的通知消息。


1
Magento已弃用这些add <type>()方法。看我的答案。
罗伯特·斯坦利

1
我的消息有问题,当我添加到购物车中时,它显示成功消息,但是当我访问另一个页面时,它仍然显示该消息。当它至少显示一次时,如何删除它?
亨利·贝
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.