2012-06-08 8 views
12

Magentoでセッションを解除するには?私はMagentoのカスタムmodule.Belowでセッションを使用しています

$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:(わずかに遅くなり、最終的にはとにかくunsetDataを実行されます)

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

案内

$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();それぞれの(両方の別名をその他)

関連する問題