2014-10-06 67 views
0

我的網站上我有設置一個核心會話變量,所以幾頁:Magento的 - 訪問會話自定義模塊內的可變

Mage::getSingleton('core/session')->setSellYourArtCheck(1); 

如果我想訪問此任何地方我可以成功做到:

Mage::getSingleton('core/session')->getSellYourArtCheck(); 

但我現在需要訪問我的自定義模塊中的這個會話變量,但它顯示爲空/空當我嘗試訪問它如上。

我模塊

我Observer.php代碼:

<?php 
class Custom_RegisterArtist_Model_Observer 
{ 
    public function registerArtist(Varien_Event_Observer $observer) 
    { 
     // other code.... 

     $is_artist = Mage::getSingleton('core/session')->getSellYourArtCheck(); 
     if($is_artist == 1) 
     { 
      $customer->setData('group_id', 4); 
     } 

     // other code.... 
    } 
} 

$is_artist變量始終是空/空我的模塊中,但對我的任何網頁

+0

確定的事件/觀察者發射前的會話變量已設置。 – 2014-10-06 11:59:56

+0

是的,它是事先設定的。我的模塊被調用的事件是customer_save_before – 2014-10-06 12:15:12

+0

它們是否設置在同一個線程中? – 2014-10-06 12:58:10

回答

0

也許你的觀察者的後稱爲細加載頁面,所以實際上沒有設置該值。

這是設置會話變量的正確方法(如你寫的)

Mage::getSingleton("core/session")->setMySessionVariable("test"); 

$myValue = Mage::getSingleton("core/session")->getMySessionVariable(); 

echo $myValue; 
+0

感謝您的答案,但對不起,我不明白這是如何解決? – 2014-10-06 14:56:55

+0

你的觀察者觸發了哪些動作? – bla0009 2014-10-06 19:18:26