繁体   English   中英

登录后如何显示我的管理员全名-Codeigniter

[英]How can I display the name of my admin full name after login - Codeigniter

我在显示管理员全名时遇到麻烦,例如,管理员全名是John Doe,它没有显示。 我还在学习codeigniter,请给我建议,谢谢!

这是我的控制器

            //Get username
        $username = $this->input->post('username');

        //Get and encrypt the password
        $password = $this->input->post('password');

        // Login user
        $user_id = $this->role_model->login($username, $password);


        if ($user_id) {
        // Create session
        $user_data = array(
            'user_id' => $user_id,
            'name' => $user_id->name,
            '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('pages/index');

这是我的视图-我想在其中显示我的全名,正如您所看到的, “ name”是我必须显示的数据字段,但它没有显示任何内容,它给出了一个错误,提示未定义名称。

  <li><a> Welcome, <?php echo $this->session->name ?> </a></li>

模型

        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;
        }
    }

它显示为undefined,因为它确实是undefined。 在您看来,您正在尝试回显名为userdata()的函数的返回值,该函数实际上存在吗? 还是$this->session->userdata是一个数组? 在这种情况下,您需要使用[ index ]来访问数组中的成员。 $this->session->userdata['name'] ,但是该成员必须首先存在。

     controller   : 

     if($this->Login_model->login_valid($email,$password))
        {
            $sessiondata = array(
                'username' => $email
            );
            $this->session->set_userdata('logged_in', $sessiondata);
            redirect('narson');     
        }
        else
        {
            $this->session->set_flashdata('error',"Invalid Username And password");
            redirect('login');
        }


       model:

     public function login_valid($username,$password)
     {
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $query = $this->db->get('admin');

       if($query->num_rows() > 0)
      {
       return true;
      }
      else
      {
      return false;
      }
    }

您的方法login()仅返回id = digit( return $result->row(0)->id; ),而不返回对象(在控制器中,您获得$user_id->name )。

在模型中执行以下操作:

if ($result->num_rows() == 1) {
    return $result->row(0); // fix
}else{
    return false;
}

在控制器中:

$user = $this->role_model->login($username, $password);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM