2012-11-15 2 views
2

나는 세션 데이터에 저장된 사용자의 성과 이름을 가지고 있으며 로그인 상태를 볼 수 있도록보기에서이를 반향시키고 싶습니다. 데이터를 전달할 수없는 것 같습니다. 나는 이것이 쉬운 일이라고 확신하지만 나는 CI와 전체 MVC에 대해 매우 익숙하다.Codeigniter -보기에서 세션 데이터 사용

컨트롤러 코드 :

public function index() { 
    if($this->session->userdata('admin_signed_in')){ 
    $this->load->model('dashboard_model'); 
    $data['userdata'] = $this->session->userdata; 
    $data['main_content'] = 'dashboard/dashboard'; 
    $this->load->view('common/template', $data); 
    } else { 
    redirect('signin'); 
    } 

} 

보기 코드 :

<?php echo $userdata('first_name') ?> <?php echo $userdata('last_name') ?> 

인쇄 R 결과 :

Array ([session_id] => 69db0f9ccbfde96d92cc09837067438c [ip_address] => ::1 [user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0 [last_activity] => 1352998508 [user_data] => [0] => Array ([admin_id] => 10 [first_name] => Richard [last_name] => Coy [admin_role] => 1) [admin_signed_in] => 1) 
+1

가변 변수이고 사용자의 경우 배열 인 경우 함수 형식 (parantheses 사용)에서 변수 $ userdata를 사용하고 있습니다! 대신에 $ userdata [ 'firstname']'을 사용하십시오. – Aliweb

+0

'echo $ this-> session-> userdata ('your_session_name'); ' –

답변

6

컨트롤러 코드 :

public function index() { 

    ... 
    $data['first_name'] = $this->session->userdata('first_name'); 
    ... 
} 

보기 코드 :

<?= $first_name; ?> 

OR, 당신이 현재처럼 데이터를 전달하려면, 당신은 즉, 배열이 아닌 함수로보기 데이터 유저 데이터에 액세스하는 것 :

<?= $userdata['first_name'];?> 
+0

제공 한 코드를 사용하여 아무것도 보이지 않습니다. 데이터가 있음을 보여주기 위해 print_r 결과를 추가했습니다. –

+0

사용자 데이터를 할당 한 후에'$ data [ 'first_name']'에 포함 된 내용은 무엇입니까? – Darrrrrren

+0

나는 그것을 확인하는 방법을 모른다. –

1

주석에서 언급했듯이 배열 $data에 값을 할당하고 Codeigniter 뷰 로더를 통해 전달하면 배열 인덱스와 동일한 변수 이름으로 뷰 파트에서 데이터를 사용할 수 있습니다. 예를 들어
이 작업을 수행 할 때

$data['name'] = "bla bla"; 
$this->load->view('some_view', $data); 

후 전달 된 값을 포함 할 뷰에서 $name 변수입니다. 귀하의 경우에는 $data['userdata']에 배열을 지정합니다. 보기의 $userdata도 배열이됩니다.

그래서 다음과 같이 수행

echo $userdata['firstname']; 
echo $userdata['lastname']; 

를보기 부분에.