2009-10-15 4 views
0

는 :어떻게 codeigniter에서 단일 세션 배열 인덱스의 값을 재설정합니까? 다음과 같습니다 배열을 반환하는 사용자 모델을 사용

$user_data['display_name'] = "John Doe"; 

$user_data['avatar'] = ./images/user144.jpg"; 

내가 사용하여 내 세션을 생성 $this->session->set_userdata('user_data',$user_data);

이제 다른 컨트롤러에 나는 사용자가

어떻게 자신의 아바타를 변경할 수있는 경우 세션 변수를 바꿀 수 있습니까?

$this->session->set_userdata('user_data["avatar"]',$new_avatar); 은 제대로 작동하지 않습니까? 도움을

희 감사합니다 ... 코드의 개요보고에서

답변

0

, 나는 이것에 대해 갈 수있는 가장 좋은 방법을 추측하고있어 데이터를 설정 해제하고 다시 설정하는 것입니다.

$ this-> session-> unset_userdata ('thesessiontounset')를 사용하십시오. 그런 다음 새 정보와 이전 정보로 다시 설정하십시오.

0

session-> set_userdata() 함수를 사용하면 한 번에 하나의 키만 수정할 수 있습니다. 귀하의 경우에는 키가 배열을 참조하므로 수행하려고 시도하는 방식으로 불가능합니다.

세션을 업데이트 할 때 다음과 같이 실행합니다.

//Create or setup the array of the fields you want to update. 
$newFields = array('avatar' = > 'image01.png'); 

//Check to see if the session is currently populated. 
if (!is_array($this->session->userdata('abc'))){ 
    //...and if it's not - set it to a blank array 
    $this->session->set_userdata('abc',array()); 
} 

//Retrieve the existing session data 
$existing_session = $this->session->userdata('abc'); 

//Merge the existing data with the new data 
$combined_data = array_merge($this->session->userdata('abc'), $newFields); 
//update the session 
$this->session->set_userdata('abc',$combined_data); 

More details on array_merge can be found here

0

첫 번째 컨트롤러 두 번째 컨트롤러가

$user_data = $this->session->userdata('user_data'); 

$user_data['avatar'] = $new_avatar; 

$this->session->set_userdata('user_data', $new_avatar); 
0

그것은 조금 늦게이지만 다른 사람에게 유용 할 수 있습니다,이 작동하는 것 같다

$user_data['display_name'] = "John Doe"; 

$user_data['avatar'] = "./images/user144.jpg"; 

$this->session->set_userdata('user_data',$user_data); 

:

$this->session->userdata['user_data']['avatar'] = $new_avatar; 
$this->session->userdata['other_data']['other'] = $other; 
$this->session->sess_write(); 

$_SESION['user_data']['avatar'] = $avatar과 같이 배열의 값을 편집 할 수 있습니다. 단 하나의 추가 행이 있고 CI 라이브러리 만 사용합니다.

변수 설정 세션에 대한

$this->session->unset_userdata('avatar'); 

변수의 설정을 해제 세션에 대한

0

$this->session->set_userdata('avatar', '/images/user144.jpg"'); 
관련 문제