Rom*_*aza 4 symfony1 symfony-1.4
如果它们不在Array中,如何一次删除所有会话变量?
PS我这样设置它们:
$this->getUser()->setAttribute('PayPalTransaction.hash', $request->getParameter('hash'));
Run Code Online (Sandbox Code Playgroud)
此致,罗马
这个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的先前代码
要删除命名空间的所有属性:
$this->getUser()->getAttributeHolder()->removeNamespace('yournamespace');
Run Code Online (Sandbox Code Playgroud)