1

유효한 인증을 받으면 배열 요소로 Zend_Auth_Storage_Session에 사용자 객체를 저장합니다.Zend_Auth_Storage_Session은 객체 속성을 직렬화합니다.

$authSession = new Zend_Auth_Storage_Session(); 
$authSession->write(array('user' => $user)); 

내가 Zend_Auth_Storage_Session을 읽을 때 세션 쓰기의 DateTime 인스턴스 인 사용자 lastLogin 속성은 string입니다.

+0

귀하의 요구 사항이 명확하지 않습니다. –

+0

죄송합니다. 사용자 정의 유형의 개체가 있습니다. 그 속성 중 하나는 DateTime (php api) 유형의 'lastLogin'입니다. 나는 Zend_Auth_Storage_Session에 사용자를 쓴다. 세션에서 사용자를 읽을 때 'lastLogin'은 DateTime 객체의 문자열 표현입니다. 나는 그것이 연재로 인한 것이라고 생각한다. 내가 알고 싶은 것은 세션에서 사용자를 읽을 때마다 새로운 DateTime을 인스턴스화 할 필요없이이를 처리하는 방법입니다. – cbaby

+0

저장소에서 읽은 후 'lastLogin'문자열 값은 어떻게 생겼습니까? –

답변

1

cbaby,이 해결책은 아니지만 정상적으로 'lastLogin'에 액세스 할 수 있기 때문에 나를 위해 최선을 다하고 있습니다. 어딘가 다른 뭔가 잘못되었을 수도 있습니다. 날짜를 올바르게 설정했는지 확인하십시오.

$user = new stdClass(); 
$user->name = 'Mary'; 
$user->lastLogin= new DateTime(); 

$authSession = new Zend_Auth_Storage_Session(); 
$authSession->write(array('user' => $user)); 

$read = $authSession->read(); 
echo $read['user']->lastLogin->format('Y-m-d'); 
echo '<br>' . $read['user']->lastLogin->getTimezone()->getName(); 
+0

문제는 세션에 기록 된 후 사용자의 loginTime을 업데이트 할 때 새로운 값을 db에 저장할 수 있기 때문입니다. 이미 참조로 세션에 작성된 객체를 업데이트 할 수 있는지 알지 못했습니다. – cbaby

관련 문제