Ich möchte eine Fehler- oder Erfolgsmeldung in meinem Magento 2-Modul anzeigen. Ich habe meinen Front-End-Controller um den Klassennamen erweitert \Magento\Framework\App\Action\Action
. Dann leite ich den Client mit folgendem Code auf die Homepage um
$this->messageManager->addError($SomeMessage);
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($base_path);
Alles funktioniert gut, aber diese Zeile gibt den Fehler nie aus
$this->messageManager->addError($SomeMessage);
magento2
session
magento2-dev-beta
global-messages
Shaheer Ali
quelle
quelle
Antworten:
Ich habe Probleme mit der Anzeige von Meldungen in der Magento2 Beta-Quelle. In einigen Quellen werden standardmäßig Fehler und Erfolgsmeldungen angezeigt, in einigen Fällen jedoch nicht. Führen Sie dann die folgenden Schritte aus.
Schritt 1: Ich habe die Datei Message.php in meinem benutzerdefinierten Modul in Darsh \ Crud \ Block \ Message.php erstellt
Schritt 2: Hinzufügen eines Nachrichtenblocks zum Handeler in Darsh \ Crud \ view \ frontend \ layout \ crud_index_form.xml
Fügen Sie das öffnende und schließende Tag <> für das Layout-Handle hinzu.
Jetzt können Sie Ihre benutzerdefinierte Nachricht unter Darsh \ Crud \ Controller \ Index \ Form anzeigen.
Bei Problemen lesen Sie bitte das Beispielmodul unter https://github.com/Darshanmodi1427/Magento2_Crud_Operation.git
quelle
In der Layout-Datei habe ich den folgenden Code verwendet. Jetzt habe ich die Nachricht im Frontend.
quelle
Ich hatte das gleiche Problem und konnte es beheben, indem ich Folgendes in meine Layoutdatei hinzufügte:
Dies sollte es beheben;)
quelle
Haben Sie versucht, Ihre letzte Codezeile zurückzugeben?
Die tatsächliche
addError
Funktion sieht gut aus, es sei denn, die$SomeMessage
Variable ist leer. Haben Sie das auch überprüft?Wenn dies fehlschlägt, können Sie
_redirect
stattdessen versuchen, mithilfe der Funktion umzuleiten :Möglicherweise
resultRedirect
löscht die Funktion die Nachrichtensitzung, sodass Ihre Nachricht nie angezeigt wird.quelle
Ja, ich habe eine Nachricht mit dem Objekt $ resultRedirect mit hinzugefügt
Bitte siehe unten Controller-Code
Vielen Dank.
quelle
Versuchen Sie es mit XDEBUG, setzen Sie den Haltepunkt bei Ihrer Controller-Aktion. Möglicherweise wurde die Weiterleitung dupliziert und verlorene Nachrichten im Manager.
quelle