Je souhaite afficher un message d'erreur ou de réussite dans mon module magento 2. J'ai étendu mon contrôleur frontal avec le nom de classe \Magento\Framework\App\Action\Action
. Ensuite, je redirige le client vers la page d'accueil en utilisant le code suivant
$this->messageManager->addError($SomeMessage);
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath($base_path);
Tout fonctionne bien mais cette ligne n'imprime jamais l'erreur
$this->messageManager->addError($SomeMessage);
magento2
session
magento2-dev-beta
global-messages
Shaheer Ali
la source
la source
Réponses:
J'ai rencontré un problème lié à l'affichage du message dans la source bêta de Magento2. Dans certaines sources, par défaut, le message d'erreur et de succès s'affiche, mais dans certains cas, il ne s'affiche pas, puis suivez les étapes ci-dessous.
Étape 1: j'ai créé le fichier Message.php dans mon module personnalisé dans Darsh \ Crud \ Block \ Message.php
Étape 2: ajout d'un bloc de messages dans le gestionnaire dans Darsh \ Crud \ view \ frontend \ layout \ crud_index_form.xml
Veuillez ajouter la balise d'ouverture et de fermeture <> pour la poignée de mise en page.
Vous pouvez maintenant voir votre message personnalisé ajouté dans Darsh \ Crud \ Controller \ Index \ Form.
Si vous rencontrez un problème, veuillez consulter l'exemple de module sur https://github.com/Darshanmodi1427/Magento2_Crud_Operation.git
la source
Dans le fichier de mise en page, j'ai utilisé le code ci-dessous. maintenant j'ai le message en frontend.
la source
J'ai rencontré le même problème et j'ai pu le résoudre en ajoutant les éléments suivants dans mon fichier de mise en page:
Cela devrait le réparer;)
la source
Avez-vous essayé de renvoyer votre dernière ligne de code?
La
addError
fonction réelle semble correcte à moins que la$SomeMessage
variable ne soit vide, l'avez-vous également vérifiée?Si cela échoue, vous pouvez essayer de rediriger en utilisant la
_redirect
fonction à la place comme:Peut-être que la
resultRedirect
fonction efface la session de message afin que votre message ne soit jamais affiché.la source
Oui, j'ai ajouté un message en utilisant l'objet $ resultRedirect avec
Veuillez voir ci-dessous le code du contrôleur
Merci.
la source
Essayez d'utiliser XDEBUG, définissez le point d'arrêt à l'action de votre contrôleur. Peut-être qu'il s'agissait d'une redirection redondante et de la perte de messages dans le gestionnaire.
la source