1

我已经使用 CodeIgniter 会话将数据库查询的结果保存在我的模型中,这是我第一次使用 var_dump 函数查看保存在会话变量中的结果,这一切都很好,但是因为我使用相同的会话向其他人显示结果我的控制器中的函数它只显示结果的最后一行,而不是最初保存在会话中的所有结果。

**Students Controller**

function get_student(some parameters)
{
$print_result=  $this->course_booking_model->get_student_ajax($config["per_page"],$page,$result,$tennant_id,$sort_by,$sort_order);
$this->session->set_userdata('print_result',$print_result);
$data['data_student'] = $this->session->userdata('print_result');
var_dump($this->session->userdata('print_result'));
}

同一控制器中的另一个功能

function export_students()
{
$data['data_print']=$this->session->userdata('print_result');
$this->load->view('view_students_pdf',$data);
var_dump($this->session->userdata('print_result'));
}

var_dump 函数将有不同的输出

4

2 回答 2

1

当您使用时,$this->session->set_userdata('print_result','value')您正在设置变量的值,就像您在调用 一样$print_result = 'value';,这意味着以前的值将始终被覆盖。如果您希望继续将值附加到会话数据变量,我建议您使用数组作为值,您只需检索当前数据并在每次希望更新值时将新元素附加到数组。就像是:

第一个值

$this->session->set_userdata('print_result',array($print_result));

追加新值

$this->session->set_userdata('print_result',array_push($this->session->userdata('print_result'),$new_result));
于 2013-07-11T07:08:34.290 回答
1

试试这个方法:

控制器功能一:

$query = $this->course_booking_model->get_student_ajax($config["per_page"],$page,$result,$tennant_id,$sort_by,$sort_order);
  $new_data=array(
   'pdf_data' => $query
  );

  $this->session->set_userdata($new_data);
  var_dump($this->session->userdata('pdf_data'));

控制器功能二:

$data=$this->data;
$tennant_code=$this->session->userdata('username'); 
$query=$this->session->userdata('pdf_data');
var_dump($query);
于 2013-07-11T08:17:31.703 回答