Symfony 1.4中的会话删除

Rom*_*aza 4 symfony1 symfony-1.4

如果它们不在Array中,如何一次删除所有会话变量?

PS我这样设置它们:

$this->getUser()->setAttribute('PayPalTransaction.hash', $request->getParameter('hash'));
Run Code Online (Sandbox Code Playgroud)

此致,罗马

Gra*_*rck 9

这个sfUser类(你得到的$this->getUser())保留了它的所有属性sfNamespacedParameterHolder.所以setAttribute()函数sfUser如果只是一个代理sfNamespacedParameterHolder::setAttribute().你可以用这个持有人的参考sfUser::getAttributeHolder().

sfNamespacedParameterHolder还有一个功能clear(),可以清除所有属性.

因此,要清除所有属性,请使用: $this->getUser()->getAttributeHolder()->clear().

(请注意,清除属性持有者时,您仍将进行身份验证(例如登录).


小智 7

另一种方法是,如果您只想删除一个会话变量而不是所有会话变量,则使用以下代码

$this->getUser()->getAttributeHolder()->remove('att_name');
Run Code Online (Sandbox Code Playgroud)

同样,这将只删除一个而不是全部...以清除所有使用Grad的先前代码


ars*_*nik 6

要删除命名空间的所有属性:

$this->getUser()->getAttributeHolder()->removeNamespace('yournamespace');
Run Code Online (Sandbox Code Playgroud)