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のすべてのオブジェクトで使用できます。
nsetData:
_ $session->unsetData('day_filter');
$session->unsetData('days');
$session->unsetData('next_delivery_date');
_
ns(これはわずかに遅くなり、最終的にunsetDataを実行します):
_ $session->unsDayFilter();
$session->unsDays();
$session->unsNextDeliveryDate();
_
getData
間違いではありません! _Mage_Core_Model_Session_Abstract_Varien
_には比較的未知のメソッドが存在します。このクラスのgetDataメソッドには、オプションのブール2番目のパラメーターが含まれています。trueを渡すと、変数を返すときに変数がクリアされます。
したがって、$session->getData('day_filter', true);
はセッション変数day_filterを返し、同時にセッションからそれをクリアします。
nullに設定:
_ $session->setData('day_filter', NULL);
$session->setData('days', NULL);
$session->setData('next_delivery_date', NULL);
_
nsetAll | clear
最後に、核オプションを使用できます(BEWARE:これにより、追加したデータだけでなく、セッションでALL DATAが設定解除されます):
$session->unsetAll();
または$session->clear();
(両方のエイリアス)