Symfony 1.4中的会话删除

时间:2011-09-20 08:11:06

标签: symfony1 symfony-1.4

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

PS我这样设置:

$this->getUser()->setAttribute('PayPalTransaction.hash', $request->getParameter('hash'));

此致 罗马

3 个答案:

答案 0 :(得分:8)

sfUser类(使用$this->getUser()获得)将所有属性保存在sfNamespacedParameterHolder中。因此setAttribute()上的sfUser函数仅仅是sfNamespacedParameterHolder::setAttribute()的代理。您可以使用sfUser::getAttributeHolder()获取对此持有者的引用。

sfNamespacedParameterHolder还有一个函数clear(),它会清除所有属性。

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

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

答案 1 :(得分:7)

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

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

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

的先前代码

答案 2 :(得分:6)

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

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