13

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');

上記のコードは正常に機能していますが、すべての値を設定解除または破棄したいですか?すべての設定値を解除する方法を教えてください。

4

1 に答える 1

32

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メソッドには、オプションのブール値の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);

unsetAll | クリア

最後に、核オプションを使用できます(注意これにより、追加したデータだけでなく、セッション内のすべてのデータの設定が解除されます):

$session->unsetAll();または$session->clear();(お互いのエイリアス)

于 2012-06-08T06:31:11.357 に答える