Подтвердить что ты не робот

Как отключить сеанс в Magento?

Я использую сеанс в моем настраиваемом модуле 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');

Вышеприведенный код работает нормально, но теперь я хочу отключить или уничтожить все значение? Можете ли вы предоставить мне решение о том, как снять все установленные значения?

4b9b3361

Ответ 1

Существует несколько способов отмены переменных сеанса в 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​​STRONG >

Не ошибка! В Mage_Core_Model_Session_Abstract_Varien существует относительно не известный метод. Метод getData в этом классе содержит необязательный логический второй параметр, который, если пройденный true, очистит переменную при ее возврате.

Итак, $session->getData('day_filter', true); вернет переменную session day_filter, а также очистит ее от сеанса одновременно.

Установите значение null:

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

unsetAll | ясно

Наконец, вы можете использовать ядерную опцию ( BEWARE:. Это отключит ВСЕ ДАННЫЕ в сеансе, а не только данные, которые вы добавили):

$session->unsetAll(); или $session->clear(); (обе псевдонимы друг друга)