我想用我上传的照片的网址更新会话数组。
到目前为止,我已经能够创建会话并添加数组,但我无法更新数组并将更多图片网址添加到其中。
如何在不覆盖现有数据的情况下更新包含新闻数据的会话。
这是我的代码:
$show_photos = array('photo_url' =>'/assets/img/user_photos/thumbs/'.$image_data['file_name']);
$this->session->set_userdata('show_photos', $show_photos);
我正在使用codeigniter框架,但仍然应用相同的逻辑。 http://codeigniter.com/user_guide/libraries/sessions.html
答案 0 :(得分:5)
set_userdata
方法会覆盖会话内容。因此,要附加到会话var,您必须明确地执行此操作:
//get old value
$old_val = $this->session->userdata('show_photos');
//append to it
$old_val[] = array('photo_url' =>'/assets/img/user_photos/thumbs/'.$image_data['file_name']);
//place it back
$this->session->set_userdata('show_photos', $old_val);
答案 1 :(得分:1)
您可以使用php superglobal $_SESSION
。
在您的情况下$_SESSION['show_photos']
保存您的数组,您可以使用以下方法添加数据:
$_SESSION['show_photos'][] = array('your new data...');
答案 2 :(得分:0)
尝试:
$_session['show_photos'][] = $show_photos;
其中$ show_photos是数组的下一个元素