0

当用户登录时,他们会被定向到我的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');  

用户的姓名与他们的电子邮件/密码在数据库表中。我想获取用户f_name并在他们登录时将其设置在会话中,因为会话是全局变量。

看法

我的标题显示了他们的名字:

echo $this->session->userdata('name'); 

如何从表中获取 db_values 并将它们传递给会话?

4

1 回答 1

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');
于 2012-10-03T02:25:55.573 回答