当用户登录时,他们会被定向到我的log in
函数 - 这是我的部分工作代码。我评论了需要帮助的部分。
if ($query->num_rows() == 1)
{
return $query->row()->f_name;
}
else {
return false;
}
}
if($this->form_validation->run()) {
$f_name = $this->model_users->can_log_in();
$data = array(
'email' => $this->input->post('email'),
'is_logged_in' => 1,
'name' => $f_name
);
$this->session->set_userdata($data);
redirect('account_dashboard');
用户的名字在他们的电子邮件/ pw的数据库表中。我想让用户f_name
在登录时将其设置在会话中,因为会话是全局变量。
我的标题显示了他们的名字:
echo $this->session->userdata('name');
如何从表中获取db_values并将它们传递给会话?
答案 0 :(得分:0)
当您致电$query->row()
时,它会将查询结果中的第一行作为对象返回。因此,如果您需要返回用户的名字,在这种情况下存储在f_name
字段下,您需要写下这个:
return $query->row()->f_name;
然后在你的控制器中,你将从模型函数返回第一个名字。
$f_name = $this->model_name->model_function_name();
$data = array('email' => $this->input->post('email'),
'is_logged_in' => 1,
'name' => $f_name
);
如果您需要的不仅仅是控制器中用户的名字,请改为从模型函数返回整行。
return $query->row();
然后在您的控制器中,您可以通过访问其属性来访问返回的对象(或数组,如果您使用row_array()
),该属性将根据数据库表中的字段名称进行命名。
$user = $this->model_name->model_function_name();
$f_name = $user->f_name; // Get the user's first name
$other = $user->other; // Get some other information
row_array()
的工作方式也相同,但当然,您需要执行类似$user['f_name']
而不是$user->f_name
的操作。
编辑:此外,在尝试调用其功能之前,请确保控制器已加载模型。
$this->load->model('model_name');