如何在 Codeigniter 3 中显示注册用户的名字?

How to display the name of the registered user in Codeigniter3?

我想在其他页面显示注册用户的名字。我可以显示用户名,user_id,但我想显示注册用户的名字。 这是我的控制器:

code:

    public function login() {
        $data['title'] = 'Sign In';

        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        if($this->form_validation->run() === FALSE) {
            $this->load->view('templates/header');
            $this->load->view('users/login', $data);
            $this->load->view('templates/footer');

        }
        else {
            //Get username
            $username = $this->input->post('username');
            
            //Get and encrypt password
            $password = md5($this->input->post('password'));
            
            //Login user
            $user_id = $this->user_model->login($username, $password);


            if($user_id) {

                //Create session
                $user_data = array(
                    'user_id' => $user_id,
                    'username' =>$username,
                    'logged_in' => true
                );

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

                //Set message
                $this->session->set_flashdata('user_loggedin', 'You are now logged in');

                redirect('dashboard/index');
            }
            else {
            //Set message
            $this->session->set_flashdata('login_failed', 'Login is invalid');

            redirect('users/login');    
            }

        } 
    }

这是我的模型:

code

       public function login($username, $password) {
        //Validate
        $this->db->where('username', $username);
        $this->db->where('password', $password);

        $result = $this->db->get('users');
        if($result->num_rows() == 1){
            return $result->row(0)->id;
        }
        else {
            return false;
        }
    }

这是我的观点:

code

      <p>Welcome, <?php echo $this->session->username ?> </p>

我已经为名称尝试了相同的方法,甚至添加了上面的 user_data 数组。但是,不知何故,它只适用于用户名、user_id 和 logged_in 值。

我假设您的数据库中有一列 'name'

在你的模型中

return $result->row();

instead of

$result->row(0)->id;

在控制器中设置会话以在会话中添加名称

$user_data = array(
'user_id' => $user_id->id,
'name' =>$user_id->name,
'username' =>$username,
'logged_in' => true
);

在您看来

<p>Welcome, <?php echo $this->session->name ;?> </p>