2010-07-27 17 views
47

Estoy usando Magento e intento guardar un valor en la sesión de la siguiente manera en su archivo index.php, pero el valor no se conserva.¿Cómo guardo el valor en mi propia variable de sesión en Magento?

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

¿Cómo lo hago?

Gracias

+0

I tenían el mismo problema cuando se utiliza 'setcookie()' directamente, como se encarga de la '/ modelo cookie' núcleo establecer aquellos, y pareció que era sobrescribir mis valores. – DWils

Respuesta

74

Digamos que desea guardar el valor "Hola mundo" al "mensaje de bienvenida" variable en la sesión. El código sería:

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

Ahora desea hacer eco del "mensaje de bienvenida" en otro lugar en su código/sitio.

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

Vale la pena mencionar cómo borrar (deshacer) una variable de sesión: Mage :: getSingleton ('core/session') -> unsWelcomeMessage(); El "uns" significa desarmado. –

+3

Sé que fue hace 5 años, ¡pero MUCHAS GRACIAS! – Paradoxetion

32

Siguiendo el ejemplo dado por Ali Nasrullah, lo haría:

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

asegúrese de incluir [Mago-root] /app/Mage.php se acaben llamando el código anterior!

@Ali Nasrullah: Pase el valor del dispositivo: id como segundo parámetro de la función setData.

+1

Intenté lo anterior pero no pude hacerlo funcionar. Cómo llamar a /app/Mage.php. Por defecto, index.php incluye: require_once $ mageFilename; ¿Es suficiente? –

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

backend: Mage::getSingleton('admin/session')->setYourNameSession($session_value); 
Cuestiones relacionadas