2012-06-08 13 views
12

Sto usando sessione nel mio Magento module.Below personalizzato è il mio codiceCome disinserire la sessione in Magento?

$session = Mage::getSingleton("core/session", array("name"=>"frontend")); 

$session->setData("day_filter", 'weeks'); 
$session->setData("days", '5');   
$session->setData("next_delivery_date", '2012-05-12'); 

Il codice di cui sopra sta lavorando bene, ma ora voglio disinserire o distruggere tutto il valore? Potete per favore fornirmi la soluzione su come disinserire tutti i valori impostati?

risposta

31

Ci sono diversi modi per disinserire le variabili di sessione in Magento. La maggior parte di questi (non tutti) sono definiti in Varien_Object e quindi sono disponibili per tutti gli oggetti in Magento che lo estendono.

unsetData:

$session->unsetData('day_filter'); 
    $session->unsetData('days'); 
    $session->unsetData('next_delivery_date'); 

uns (che sarà leggermente più lento e, infine, esegue unsetData comunque):

$session->unsDayFilter(); 
    $session->unsDays(); 
    $session->unsNextDeliveryDate(); 

getData

Non è un errore! Un metodo relativamente sconosciuto esiste in Mage_Core_Model_Session_Abstract_Varien. Il metodo getData in questa classe contiene un secondo parametro booleano facoltativo che, se passato true, cancellerà la variabile restituendola.

Quindi $session->getData('day_filter', true); restituirebbe la variabile di sessione day_filter e cancellerà anche dalla sessione allo stesso tempo.

impostato su NULL:

$session->setData('day_filter', NULL); 
    $session->setData('days', NULL); 
    $session->setData('next_delivery_date', NULL); 

unsetAll | chiaro

Infine è possibile utilizzare l'opzione nucleare (ATTENZIONE: Ciò disinserire TUTTI I DATI nella sessione, e non solo i dati che si hanno aggiunto):

$session->unsetAll(); o $session->clear(); (entrambi gli alias di ogni altro)

Problemi correlati