2011-04-08 5 views
1

내 응용 프로그램에 하나의 기본 시간대가 있습니다. 그리고 모든 사용자는 자신의 시간대를 가지고 있습니다. 데이터베이스에 저장된 사용자 시간대를 설정하고 싶습니다.부트 스트랩 파일의 시간대 설정

부트 스트랩 파일의 사용자에 따라 시간대를 설정하는 방법. 사전에

감사합니다 ... 설정의 기본을 initTimezone() 부트 스트랩 방법을 작성 데이터베이스에서 사용자/세션의 시간대를 검색하고 사용자가 로그인하지 않은 경우, 시간대를 설정

class Crm_Bootstrap extends Zend_Application_Module_Bootstrap { 

    protected function _initTimezone() 
    { 

     $userObj = new Application_Model_DbTable_Users(); 
     require_once('Zend/Session.php'); 
     $session = new Zend_Session_Namespace('logincred'); 
     $userdetails = $userObj->userdetails($session->user); 
     date_default_timezone_set($userdetails[0][id]); 
    } 
} 

답변

0

시간대.

+0

내 질문을 참조하십시오 내 코드를 추가했습니다. 이것이 틀린 경우 나에게 정확한 코드를 제공하십시오. 도와 주셔서 감사합니다 ... –

+0

작동합니까? 이 코드에는 몇 가지 문제점/문제점이 있습니다. 많은 것들이 차선책으로 해결됩니다. 우선 오토로더를 사용하지 않는 이유는 무엇입니까? – markus

+0

오토로더로도 시도되었습니다. '$ userObj = new Application_Model_DbTable_Users();를 사용하려고 할 때; require_once ('Zend/Session.php'); $ session = new Zend_Session_Namespace ('logincred'); '빈 화면 만 나타납니다. –

0

또한 부트 스트랩뿐만 아니라 로그인 방법에서도이 작업을 수행해야합니다. 그렇지 않으면 성공적으로 로그인 한 후의 초기 페이지 뷰에 잘못된 시간대가 있습니다.

public function login($username, $password) { 
    // .. login code .. 
    // .. login successful .. 
    date_default_timezone_set($user->timezone); 
} 
+0

제 질문을 참조하십시오. 내 코드를 추가했습니다. 이것이 틀린 경우 나에게 정확한 코드를 제공하십시오. 도움을 주셔서 감사합니다 ... –

+0

'$ userdetails [0] [id]'가 틀렸다고 가정합니다. 그러면 분명히 사용자 ID를 얻을 수 있을까요? 시간대 열을 가져와야하며, 상수를 사용하지 않고 열 이름을 따옴표로 묶어야합니다. 예 :'$ userdetails [0] [ 'timezone']' –

+0

오타이는 오타입니다. 하지만 $ userdetails [0] [ 'timezone']으로 시도했습니다. –

0

Iam doctrine2 + Symbony 데이터베이스의 사용자 이름 행을 확인하십시오.

$userRepo = $em->getRepository('modules\user\models\Users')->find($userId); 

것은 당신의 DB에 시간대를 가져오고 함수에서 가치를

$timezone = $userRepo->timezone; 
date_default_timezone_set($timezone); 

코드는

class Crm_Bootstrap extends Zend_Application_Module_Bootstrap { 

    public function init() 
    { 

     $em = $this->getEntityManager('user'); 
    @$userId = Zend_Auth::getInstance()->getIdentity()->id; 
    $userManager = new UsersManager(); 
    if ($userId) { 

     $userRepo = $em->getRepository('modules\user\models\Users')->find($userId); 
     date_default_timezone_set($userRepo->timezone); 

    } 
    } 
} 

당신은 DB 테이블의 시간대 필드를 만드는 것입니다

관련 문제