>我正在我的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');
上面的代码工作正常,但现在我想取消设置或销毁所有值?您能否为我提供如何取消设置所有设置值的解决方案?
有几种方法可以在Magento中取消设置会话变量。 其中大多数(不是全部)都是在Varien_Object
中定义的,因此可用于Magento中扩展它的所有对象。
未设置数据:
$session->unsetData('day_filter');
$session->unsetData('days');
$session->unsetData('next_delivery_date');
uns(它会稍微慢一点,最终还是执行unsetData):
$session->unsDayFilter();
$session->unsDays();
$session->unsNextDeliveryDate();
获取数据
没有错!Mage_Core_Model_Session_Abstract_Varien
中存在一种相对不成立的方法。 此类中的 getData 方法包含一个可选的布尔第二个参数,如果传递 true,则会在返回变量时清除该变量。
因此,$session->getData('day_filter', true);
将返回会话变量day_filter,并同时将其从会话中清除。
设置为空:
$session->setData('day_filter', NULL);
$session->setData('days', NULL);
$session->setData('next_delivery_date', NULL);
未设置全部 | 清除
最后,您可以使用 nuclear 选项(请注意:这将取消设置会话中的所有数据,而不仅仅是您添加的数据):
$session->unsetAll();
或$session->clear();
(彼此的别名)