2011-05-05 4 views
1

J'essaie d'accéder aux messages de la session en cours de Magento (ceux écrits par addError). Je le fais depuis l'intérieur du modèle Cart.Magento obtenir des messages de session

$smessages = Mage::getSingleton('checkout/session')->getMessages(true);

Renvoie un tableau de tous les messages correctement. Cependant, quand j'essaie de "foreach" à travers $ smessages, je n'obtiens rien. L'idée est alors d'utiliser getText() dans la boucle pour obtenir chaque message individuel.

foreach ($smessages as $smessage) { 
    Mage::log($smessage); 
} 

Qu'est-ce que je fais mal?

+0

si vous souhaitez utiliser la sortie « par défaut » fourni par magento vérifier cette réponse: http://stackoverflow.com/a/5878352/574881 – jay

Répondre

6

Je l'ai compris!

$smessages = Mage::getSingleton('checkout/session')->getMessages()->getItems(); 
$output = NULL; 
foreach ($smessages as $smessage) { 
     $output .= $smessage->getText(); 
} 
+0

Comment détecter s'il n'y a pas de messages définis? (tableau vide) –

+0

if (vide ($ smessages)) – djdy

+0

Ne fonctionnera pas dans certains cas. Par exemple, des informations d'identification d'utilisateur incorrectes lors de la connexion. Utilisez plutôt le singleton de Mage_Core_Block_Messages. –

Questions connexes