2017-02-07 15 views
0

Отправка значения из одной функции моего контроллера «login_user» в другую панель инструментов «Функция» сохраняется в сеансе, но я не могу получить доступ к значению когда я использую Uri маршрутизации, чтобы получить его здесь кодкак сохранить значение сеанса и передать его из одной функции контроллера в другую функцию

public function login_user(){ 
    //$cache=$this->input->post(); 
    $this->form_validation->set_rules('email','Email','required'); 
    $this->form_validation->set_rules('password', 'Password', 'trim|required'); 
    $this->form_validation->set_error_delimiters("<p class='text-danger'>","</p>"); 
    if($this->form_validation->run()){ 
     $email=$this->input->post('email'); 
     $password=$this->input->post('password'); 
     $this->load->model('Pmodel'); 
     $login_data=$this->Pmodel->login_model($email,$password); 
     print_r($login_data); 
     if($login_data){ 
      $data= $this->session->set_userdata('data', $login_data); 
      var_dump($data); 
      return redirect(base_url()."user/dashboard".$data); 
      //$this->load->view('dashboard/dashboard',['data'=>$data]); 
     }else{ 
      $this->session->set_flashdata('Login_failed','Invalid Username/Password.'); 
      return redirect('user/login_invalid'); 
      //echo "string"; 
     } 
    }else{  
     return redirect('user/login_invalid'); 
    } 
} 

и еще одна функция

public function dashboard(){  
    if ($this->session->userdata('data') === NULL){ 
     echo "hello"; 
     return redirect('user/login_invalid'); 
    }else{ 
     $login_data = $this->uri->segment(3); 
     var_dump($login_data); 
     $this->load->model('Pmodel'); 
     $email=$this->Pmodel->select_model('$email'); 
     $this->load->view('dashboard/dashboard',$email); 
    } 
} 

ответ

0

Вы должны загрузить библиотеку сеанса для этого, если еще не активировано

$this->load->library('session'); 

Для использования сеансового это

$this->session->set_userdata('session_name', 'data'); 

Для извлекать пользовательские данные используют этот

$this->session->userdata('rec_id'); 
0

Просто позвоните ниже функции вместо перенаправления, если обе функции «login_user» и «приборной панели» являются в том же контроллере.

$data= $this->session->set_userdata('data', $login_data); 
var_dump($data); 
return redirect(base_url()."user/dashboard".$data); 

Заменить выше перенаправлением с простым вызовом функции класса с:

$data= $this->session->set_userdata('data', $login_data); 
$this->dashboard($data); 

приборной панели тела функции может выглядеть, как это сейчас.

function dashboard($data=null){ 
    // your code here 
} 
0

После того, как вы пробовали его в течение нескольких часов, я наконец нашел способ передать значение из одного контроллера на другой здесь код

$this->session->set_userdata($login_data); 

     $data=$this->session->all_userdata($login_data); 

     return redirect(base_url()."user/dashboard/?data=".json_encode($data)); 

Теперь на функции приборной панели просто использовать это, чтобы получить данные

$data=json_decode($_GET['data']); 
    $this->load->model('Pmodel'); 
$email['data']=$this->Pmodel->select_model($data); 
    $this->load->view('dashboard/dashboard',$email); 

это будет передавать данные в модели и вы сделали .