Quero mostrar uma mensagem de erro ou sucesso no meu módulo magento 2. Estendi meu controlador front-end com o nome da classe \Magento\Framework\App\Action\Action
. Em seguida, redireciono o cliente para a página inicial usando o seguinte código
$this->messageManager->addError($SomeMessage);
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($base_path);
Tudo funciona bem, mas esta linha nunca imprime o erro
$this->messageManager->addError($SomeMessage);
magento2
session
magento2-dev-beta
global-messages
Shaheer Ali
fonte
fonte
Respostas:
Eu enfrentei um problema relacionado à exibição de mensagens na fonte Magento2 Beta. Em algumas fontes, por padrão, é exibida a mensagem de erro e sucesso, mas em alguns casos ela não é exibida e siga as etapas abaixo.
Etapa 1: Criei o arquivo Message.php no meu módulo personalizado em Darsh \ Crud \ Block \ Message.php
Etapa 2: bloco de mensagens adicionado ao handeler em Darsh \ Crud \ view \ frontend \ layout \ crud_index_form.xml
Adicione a tag de abertura e fechamento <> para o identificador de layout.
Agora você pode ver sua mensagem personalizada adicionada em Darsh \ Crud \ Controller \ Index \ Form.
Se você enfrentar algum problema, consulte o módulo Exemplo em https://github.com/Darshanmodi1427/Magento2_Crud_Operation.git
fonte
No arquivo de layout, usei o código abaixo. agora eu recebi a mensagem no frontend.
fonte
Eu enfrentei o mesmo problema e consegui corrigi-lo adicionando o seguinte no meu arquivo de layout:
Isso deve corrigi-lo;)
fonte
Você tentou retornar sua última linha do código?
A
addError
função real parece correta, a menos que a$SomeMessage
variável esteja vazia, você também verificou?Se isso falhar, talvez você possa tentar redirecionar usando a
_redirect
função:Talvez a
resultRedirect
função limpe a sessão de mensagens para que sua mensagem nunca seja exibida.fonte
Sim, adicionei uma mensagem usando o objeto $ resultRedirect com
Veja abaixo o código do controlador
Obrigado.
fonte
Tente usar o XDEBUG, defina o ponto de interrupção na ação do seu controlador. Talvez tenha sido duplicado o redirecionamento e a perda de mensagens no gerenciador.
fonte