开发者

Session deletion in Symfony 1.4

How do I delete all session variables at once if they are not in Array?

PS I set them this way:

$this->getUser()->setAttribute('开发者_JAVA百科PayPalTransaction.hash', $request->getParameter('hash'));

Regards, Roman


The sfUser class (which you get with $this->getUser()), keeps all it's attributes in a sfNamespacedParameterHolder. So the setAttribute() function on sfUser if merely a proxy to the sfNamespacedParameterHolder::setAttribute(). You can get the reference to this holder with sfUser::getAttributeHolder().

The sfNamespacedParameterHolder also has a function clear(), which clears all attributes.

So to clear all attributes, use: $this->getUser()->getAttributeHolder()->clear().

(Please note that you will still be authenticated (e.g. logged in) when you clear the attribute holder).


Another way if you want to remove just one session variable not all of them is to use the following code

$this->getUser()->getAttributeHolder()->remove('att_name');

Again this will only remove one not all ... to clear all use the previous code by Grad


To remove all attributes of a namespace :

$this->getUser()->getAttributeHolder()->removeNamespace('yournamespace');
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜