2011-09-20 4 views
4

배열에없는 세션 변수는 한꺼번에 모두 삭제합니까?Symfony 1.4의 세션 삭제

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

감사합니다, 로마

+0

필요합니다. 그것을 할 방법이 있습니까? –

답변

8

sfUser 클래스 (당신이 $this->getUser()으로 얻을 수있는)하는 sfNamespacedParameterHolder의 모든 그것의 속성을 유지 :

PS 나는 그들에게이 방법을 설정합니다. 따라서 에 대한 프록시 인 경우 setAttribute()의 기능은 sfUser에 있습니다. 이 홀더에 대한 참조는 sfUser::getAttributeHolder()으로받을 수 있습니다.

sfNamespacedParameterHolder도 모든 특성을 지우는 기능 clear()을 가지고 있습니다.

모든 속성을 지우려면 $this->getUser()->getAttributeHolder()->clear()을 사용하십시오.

(특성 홀더를 지울 때 여전히 인증 (예 : 로그인)됩니다).

+0

예, 매력으로 작동합니다! 좋은! 감사! –

+0

Grad, Array에 세션을 저장하면 직접 액세스 할 수있는 능력이 떨어집니다. 그렇습니까? 예 : 나는 쉽게 값을 변경하거나 getAttribute()를 사용하여 특정 요소를 참조 할 수 없다 ... –

+0

Ehm? 당신이하려는 일을 분명히 해줄 수 있습니까? (또는 새로운 질문을 열면 누구나 답변 할 수 있습니다.) –

7

당신은 단지 하나 개의 세션 변수없는 그들 모두를 제거 할 경우 또 다른 방법은 모든 이전 코드를 사용 취소 이것은 단지 모두를 ... 하나를 제거하지 않습니다 다시 다음 코드

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

을 사용하는 것입니다 대학원

6

하여 네임 스페이스의 모든 속성을 제거하려면 다음 네임 스페이스 작업에 세션을 삭제

$this->getUser()->getAttributeHolder()->removeNamespace('yournamespace'); 
관련 문제