Session deletion in Symfony 1.4

依然范特西╮ 提交于 2019-12-03 08:36:36

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');
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!