마 젠토 2 알림 메시지


답변:


32

수업에서 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()

"모든 것"이 자바 스크립트 인 한 페이지 체크 아웃 중에도 작동합니까?
peedee

"page.messages"섹션은 checkout_index_index.xml 파일을 통해 체크 아웃에서 제거되므로 메시지가 표시되지 않습니다. 마 젠토가 왜 그렇게 만들 었는지 궁금합니다.
peedee

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> () 메소드를 더 이상 사용하지 않습니다. 내 대답을 참조하십시오.
Robert Stanley

1
메시지에 문제가 있습니다. 장바구니에 추가하면 성공 메시지가 표시되지만 다른 페이지에 액세스해도 해당 메시지가 계속 표시됩니다. 한 번 이상 표시되면 어떻게 제거합니까?
Henry Bui
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.