Chcę wyświetlić komunikat o błędzie lub sukcesie w moim module magento 2. Rozszerzyłem mój kontroler front-end o nazwę klasy \Magento\Framework\App\Action\Action
. Następnie przekierowuję klienta do strony głównej za pomocą następującego kodu
$this->messageManager->addError($SomeMessage);
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($base_path);
Wszystko działa dobrze, ale ta linia nigdy nie drukuje błędu
$this->messageManager->addError($SomeMessage);
magento2
session
magento2-dev-beta
global-messages
Shaheer Ali
źródło
źródło
Odpowiedzi:
Napotkałem problem związany z wyświetlaniem komunikatu w źródle Magento2 Beta. W niektórych źródłach domyślnie wyświetlany jest komunikat o błędzie i komunikat o powodzeniu, ale w niektórych przypadkach nie wyświetla się, a następnie wykonaj poniższe czynności.
Krok 1: Utworzyłem plik Message.php w moim module niestandardowym w Darsh \ Crud \ Block \ Message.php
Krok 2: Dodano blok komunikatów do handeler w Darsh \ Crud \ view \ frontend \ layout \ crud_index_form.xml
Dodaj otwierający i zamykający tag <> dla uchwytu układu.
Teraz możesz zobaczyć swoją niestandardową wiadomość dodaną w Darsh \ Crud \ Controller \ Index \ Form.
Jeśli napotkasz jakiś problem, zobacz Przykładowy moduł na https://github.com/Darshanmodi1427/Magento2_Crud_Operation.git
źródło
W pliku układu użyłem poniższego kodu. teraz mam wiadomość w interfejsie.
źródło
Napotkałem ten sam problem i udało mi się go rozwiązać, dodając następujące elementy w moim pliku układu:
To powinno to naprawić;)
źródło
Czy próbowałeś zwrócić ostatnią linię kodu?
Rzeczywista
addError
funkcja wygląda dobrze, chyba że$SomeMessage
zmienna jest pusta, czy też to sprawdziłeś?Jeśli to się nie powiedzie, możesz spróbować przekierować za pomocą
_redirect
funkcji zamiast:Być może
resultRedirect
funkcja usuwa sesję wiadomości, dzięki czemu wiadomość nigdy się nie wyświetla.źródło
Tak, dodałem wiadomość za pomocą obiektu $ resultRedirect z
Zobacz poniższy kod kontrolera
Dzięki.
źródło
Spróbuj użyć XDEBUG, ustaw punkt przerwania w akcji kontrolera. Może to było zduplikowane przekierowanie i zgubienie wiadomości w menedżerze.
źródło