这是我的登录控制器中的函数,它将数据存储到数组中,然后设置userdata
function validate_credentials()
{
$this->load->model('membership_model');
$query = $this->membership_model->validate();
if($query):
$data = array(
'username' => $this->input->post('username'),
//add usertype
//add email
//add deposit money
'is_logged_in' => true
);
$this->session->set_userdata($data);
//should redirect to last view
redirect('home/index');
else:
$this->index();
endif;
}// end of validate_credentials()
我想存储更多信息,例如usertype,email,depost等......数据存储在数据库中。如何从模型到控制器获取数据?或者这不推荐?
例如使用usertype我想在视图中检查用户是否为管理员并仅为管理员显示某些选项。
答案 0 :(得分:0)
您可以使用在CI中完成的常规CI会话处理。
$this->session->set_userdata('usertype', 'admin');
用于检查usertype。我通常有一个验证类,用于检查登录的用户是否为管理员。 e.g。
function logged_in($role = NULL)
{
if ( ! $this->CI->session->userdata('logged_in'))
{
return FALSE;
}
if ($this->CI->user->has_role($role, $this->CI->session->userdata('user_id')))
{
return TRUE;
}
return FALSE;
} // function restrict()
关于保存信息,使用会话,它可能不是最安全的。我通常建议动态检查用户信息,而不是将所有内容存储在CI会话中。