在我的应用程序中我想根据用户(而不是用户级别)过滤数据。例如我有一个用户,当他们登录系统时我想查看他们自己的数据。我可以使用codeigniter.i也在登录控制器中创建了一个会话。并且hesder。现在我想从另一个控制器过滤数据。这可能吗?
这里是我在Login controller中的会话代码
public function user_login_process() {
$this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE) {
if(isset($this->session->userdata['logged_in'])){
//$this->load->view('admin_page');
$this->home();
}else{
$this->load->view('user_site/login_form');
}
} else {
$data = array(
'email' => $this->input->post('email'),
'password' => $this->input->post('password')
);
$result = $this->login_database->login($data);
if ($result == TRUE) {
$email = $this->input->post('email');
$result = $this->login_database->read_user_information($email);
if ($result != false) {
$session_data = array(
'firstname' => $result[0]->firstname,
'email' => $result[0]->email,
'id' => $result[0]->id,
);
// Add user data in session
$this->session->set_userdata('logged_in', $session_data);
//$this->load->view('index');
// $this->home();
$this->load->view("user_include/header");
$this->load->view('user_site/index');
}
} else {
$data = array(
'error_message' => 'Invalid Username or Password'
);
$this->load->view('user_site/login_form', $data);
}
}
}
这是标题
<?php
if (isset($this->session->userdata['logged_in'])) {
$firstname = ($this->session->userdata['logged_in']['firstname']);
$email = ($this->session->userdata['logged_in']['email']);
$id = ($this->session->userdata['logged_in']['id']);
} else {
header("location: login");
}
现在我想过滤另一个控制器中的数据
function get_book(){
$this->db->select("book.id,book.title");
$this->db->where("user_id = $id");
$this->db->from('book');
$query = $this->db->get();
return $query->result();
}
当我使用上面的代码过滤数据时,它显示了
错误未定义的变量:id
这是我的视图代码。
<?php foreach($post as $post){?>
<tr>
<td><?php echo $post->id ; echo ' ';?></td>
<td><?php echo $post->title ; echo ' ';?></td>
</tr>
<?php }
?>
这是我的控制器
public function index(){
$data['post'] = $this->floor_model->get_book();
$this->load->view('user_include/header');
$this->load->view('plan/floor',$data); }
答案 0 :(得分:0)
您将id
存储在会话变量中。为了得到这个你使用
$id = $this->session->userdata['logged_in']['id'];
模型
function get_book(){
$id = $this->session->userdata['logged_in']['id'];// getting id
$this->db->select('id,title');
$this->db->where('user_id', $id);//
$this->db->from('book');
$query = $this->db->get();
return $query->result();
}