2012-12-30 3 views
1

내 모든 작업/템플릿에서 액세스 할 수있는 symfony 세션 변수를 설정하려고합니다. 이 작업은 사용자 자격 증명의 유효성이 검사되고 사용자가 인증되었지만 자신의 홈페이지로 리디렉션되기 전에 수행됩니다. 나는 var_dump을가 null를 돌려Symfony 1.4 : 세션 변수를 설정할 수 없습니다

$this->getUser()->getAttribute('userid'),

:

// Authentication verified 

$this->getUser()->setAuthenticated(true); 
// note I am deliberately using a static value 
$this->getUser()->setAttribute('userid',"4"); 
$this->redirect('flashcard/index'); 

나는이 같은 내 작업 중 하나에이 속성을 얻을 시도 :

코드는 다음과 같습니다 좋아요 :

var_dump($this->getUser()->getAttributeHolder()->getAll()); 

빈 배열을 반환합니다. 이는 어떤 것이 정확하지 않다는 것을 의미합니다.

세션 변수를 설정하는 것과 아무 관계가 없다고 생각되지만 로그인 인증에 sfDoctrineGuard를 사용하지 않았습니다. 당신이 $ this- 전화 할게 귀하의 사용자 클래스에서이 사용자 정의 기능 추가 -

1 : 여기

+0

'$ this-> getUser() -> getAttribute ('userid')'를 호출 할 때 사용자가 로그인 했습니까? – 1ed

답변

2

오류가 무엇인지 확실하지,하지만 코드를 개선하고 디버깅하려고 할 수있는 몇 가지 제안입니다 $ this-> getUser() -> isMyVariableDefined() ... 이렇게하면 이름과 네임 스페이스에 오타가 생기지 않습니다. ...

2 - 그냥 ... (예 : 사용자 ID와 같은 일반적인 이름에 대한 충돌을 방지하는) 경우에 네임 스페이스를 추가 같은

뭔가 :

public function setMyVariable($value = null) 
{ 
    $this->setAttribute('user_id', $value, 'some_namespace'); 
} 

3 - 일단 사용자가 로그인하면 디버그 표시 줄을 사용하여 사용자 속성을 확인하십시오. 코드를 작성할 필요가 없습니다. 그곳에 있다면, 그것이 언제 사라지는지를 확인하기 위해 계속 체크하십시오 ...

관련 문제