How do I delete all session variables at once if they are not in Array?
PS I set them this way:
$this->getUser()->setAttribute('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');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With