2010-07-27 2 views
47

Я использую Magento и пытаюсь сохранить значение в сеансе следующим образом в файле index.php, но значение не сохраняется.Как сохранить значение в моей переменной сеанса в Magento?

$_SESSION['myvar'] = '1'; 

Как это сделать?

Благодаря

+0

Я была такая же проблема при использовании 'SetCookie()' напрямую, как 'ядро/cookie' модель обрабатывает настройки те, и нашел, что это было перезаписывать мои ценности. – DWils

ответ

74

Допустим, вы хотите, чтобы сохранить значение «Hello World» на «приветственное сообщение» переменной в сеансе. Код будет следующим:

$inputMessage = 'Hello World'; 
Mage::getSingleton('core/session')->setWelcomeMessage($inputMessage); 

Теперь вы хотите повторить «приветственное сообщение» в другом месте вашего кода/сайта.

$outputMessage = Mage::getSingleton('core/session')->getWelcomeMessage(); 
echo $this->__($outputMessage); 
+16

Стоит упомянуть, как очистить (отменить) переменную сеанса: Mage :: getSingleton ('core/session') -> unsWelcomeMessage(); «uns» означает «unset». –

+3

Я знаю, что это было 5 лет назад, но СПАСИБО! – Paradoxetion

32

Следуя примеру данного Али Назралла, я хотел бы сделать:

$session = Mage::getSingleton("core/session", array("name"=>"frontend")); 
// set data 
$session->setData("device_id", 4); 
// get data 
$myDeviceId = $session->getData("device_id"); 

Убедитесь, что вы включили [Мага-корень] /app/Mage.php Befor вызова выше код!

@Ali Nasrullah: передать значение устройства: id как второй параметр функции setData.

+1

Я пробовал выше, но не мог заставить его работать. Как вызвать /app/Mage.php. По умолчанию index.php включает: require_once $ mageFilename; Этого достаточно? –

6
frontend: Mage::getSingleton('core/session')->setYourNameSession($session_value); 

backend: Mage::getSingleton('admin/session')->setYourNameSession($session_value); 
Смежные вопросы