¿Magento muestra mensajes de éxito y error? Magento 2 le ofrece la posibilidad de mostrar mensajes de éxito y error . Esta es una gran manera de dar comentarios apropiados a un usuario. Estos mensajes se pueden mostrar en adminhtml o en frontend. Úsalo, ¡pero no lo uses demasiado!

configuración: Magento muestra mensajes de éxito y error
Los mensajes son una excelente manera de mantenerse en contacto con un usuario, incluso si está trabajando en un módulo Magento 2 sin ninguna vista de frontend o adminhtml . Un mensaje definido aparecerá en un bloque de mensajes la próxima vez que este bloque se actualice (después de una carga de página o una llamada ajax). Así que incluso para un modelo de interfaz puede mostrar mensajes a un usuario. ¿Como funciona?
Trabajar con el administrador de mensajes
La mensajería en Magento 2 es manejada por un objeto administrador de mensajes. Entonces, si quieres escribir mensajes, necesitas obtener una instancia de ellos. El método preferido es inyectar esta clase en su clase agregando esto a su método __construct :
1 2 3 4 5 6 7 8 9 10 | protected messageManager; public function __construct( ... \Magento\Framework\Message\ManagerInterface $messageManager, ... ){ $this->messageManager = $messageManager; ... } |
Con esto, puedes llamar a uno de los siguientes mensajes:
1 2 3 4 | $this->messageManager->addError(__(«Error»)); $this->messageManager->addWarning(__(«Warning»)); $this->messageManager->addNotice(__(«Notice»)); $this->messageManager->addSuccess(__(«Success»)); |
Método observador
Si está en un observador, normalmente no hay forma de mostrar mensajes. Es posible que se llame a su método de observador durante una llamada ajax que no vuelve a cargar el bloque de mensajes. ¿Qué hacer? Una forma muy común de mostrar mensajes de error es lanzar un error. Por ejemplo si llamas a:
1 | throw new \Magento\Framework\Exception\CouldNotDeleteException(__(«Prices have been changed!»)); |
Este mensaje se muestra en la interfaz, ya que este es el resultado de su solicitud de ajax. He probado esto con un vendedor_orden_save_before .