2012-06-08 18 views
12

मैं अपने Magento कस्टम module.Below में सत्र का उपयोग कर रहा मेरी कोड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'); 

उपरोक्त कोड ठीक काम कर रहा है, लेकिन अब मैं सेट नहीं करना चाहते हैं या सभी मूल्य को नष्ट? क्या आप कृपया मुझे समाधान प्रदान कर सकते हैं कि सभी सेट मानों को कैसे सेट किया जाए?

उत्तर

31

Magento में सत्र चर को अनसेट करने के कई तरीके हैं। इनमें से अधिकतर (सभी नहीं) Varien_Object में परिभाषित किए गए हैं और इसलिए Magento में सभी ऑब्जेक्ट्स के लिए उपलब्ध हैं जो इसे बढ़ाते हैं।

unsetData:

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

uns (जो मामूली धीमी और अंततः unsetData वैसे भी कार्यान्वित किया जाएगा):

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

GetData

नहीं एक गलती! Mage_Core_Model_Session_Abstract_Varien में अपेक्षाकृत अनजान विधि मौजूद है। इस कक्षा में GetData विधि में एक वैकल्पिक बूलियन दूसरा पैरामीटर होता है जो सही होने पर इसे वापस लौटने पर चर को साफ़ कर देगा।

तो $session->getData('day_filter', true); सत्र परिवर्तनीय day_filter वापस करेगा और इसे एक ही समय में सत्र से साफ़ करेगा। शून्य पर

सेट:

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

unsetAll | स्पष्ट

अंत में आप परमाणु विकल्प इस्तेमाल कर सकते हैं (सावधान: इस सत्र में सभी डेटा अनसेट होगा, न सिर्फ डेटा आप को शामिल किया है):

$session->unsetAll(); या $session->clear(); (प्रत्येक के दोनों उपनाम अन्य)

संबंधित मुद्दे