Я хочу показать сообщение об ошибке или успехе в моем модуле magento 2. Я расширил свой интерфейсный контроллер с именем класса \Magento\Framework\App\Action\Action
. Затем я перенаправляю клиента на домашнюю страницу, используя следующий код
$this->messageManager->addError($SomeMessage);
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($base_path);
Все работает нормально но эта строка никогда не печатает ошибку
$this->messageManager->addError($SomeMessage);
magento2
session
magento2-dev-beta
global-messages
Шахир Али
источник
источник
Ответы:
Я столкнулся с проблемой, связанной с отображением сообщения в источнике бета-версии Magento2. В некоторых источниках по умолчанию отображается сообщение об ошибке и об успешном выполнении, но в некоторых случаях оно не отображается, а затем выполните следующие действия.
Шаг 1: Я создал файл Message.php в своем пользовательском модуле в Darsh \ Crud \ Block \ Message.php
Шаг 2: Добавлен блок сообщений в handeler в Darsh \ Crud \ view \ frontend \ layout \ crud_index_form.xml
Пожалуйста, добавьте открывающий и закрывающий тег <> для дескриптора макета.
Теперь вы можете увидеть свое собственное сообщение, добавленное в Darsh \ Crud \ Controller \ Index \ Form.
Если у вас возникли проблемы, см. Пример модуля на https://github.com/Darshanmodi1427/Magento2_Crud_Operation.git.
источник
В файле макета я использовал следующий код. Теперь я получил сообщение в веб-интерфейсе.
источник
Я столкнулся с той же проблемой, и мне удалось ее исправить, добавив в файл макета следующее:
Это должно это исправить;)
источник
Вы пытались вернуть свою последнюю строку кода?
Реальная
addError
функция выглядит нормально, если$SomeMessage
переменная не пустая, вы это тоже проверяли?Если это не удастся, возможно, вы можете попробовать перенаправить, используя
_redirect
функцию вместо этого:Возможно,
resultRedirect
функция очищает сеанс сообщений, чтобы ваше сообщение никогда не отображалось.источник
Да, я добавил сообщение, используя объект $ resultRedirect с
Пожалуйста, смотрите ниже код контроллера
Благодарю.
источник
Попробуйте использовать XDEBUG, установите точку останова на действие вашего контроллера. Может быть, это было дублировано перенаправление и делает потерянные сообщения в менеджере.
источник