使用codeigniter在导航栏中显示配置文件图像

时间:2016-11-04 18:05:46

标签: php codeigniter

我正试图在导航栏顶部显示用户图像,例如用户名“图片”,就像在此网站或任何其他网站中一样。

这就是我的尝试。

查看

 <li class="">
                    <a href="#" class="user-profile dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
                        <img src="<?php echo base_url(); ?>profileimages/<?php if (isset($_SESSION['Prof']))
                        {
                            echo $_SESSION['Prof'];
                        }?>" alt=""><?php echo $admin;?>
                        <span class=" fa fa-angle-down"></span>
                    </a>
                    <ul class="dropdown-menu dropdown-usermenu pull-right">
                        <li><a href="Profile"> Profile</a></li>
                        <li><a href="Profile_Setting"> Setting</a></li>
                        <li><a href="logout"><i class="fa fa-sign-out pull-right"></i> Log Out</a></li>
                    </ul>
                </li>

我将图像放在登录模型的会话中,

模型

public function login_admin($username,$password)
    {
        $query=$this->db->where(['Username'=>$username,'Password'=>$password])->get('dc_admin');
        if($query->num_rows()>0)
        {
            foreach ($query->result() as $row)
            {
                $q=$row->Profile_Picture;
                $_SESSION['Prof']=$q;
            }

            $this->session->set_userdata('logged_in',$username);
            redirect('Master/Users');
        }
        else
        {
            redirect('Master');
        }

    }

我是CI的新手并尝试学习,请告诉我在这里可以做什么来获取图像,我能够获得记录的IN用户名但不能获得图像。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

MODEL

第一步

从查询中获取结果

function getUserDetails($user_id){
 $this->db->where('user_id', $user_id);
 $query = $this->db->get('tbl_user');

 return $query->row();
}

第二步

正如@ cssBlaster21895所说,在会话中插入个人资料图片

$user_details = $this->M_Model->getUserDetails($user_id);
if($user_details){
 $this->session->set_userdata('profile_picture', $user_details->profile);
}

// Load your view

注意这必须在控制器内

第三步

将图像添加到导航栏

<img src = "<?php if($this->session->userdata('profile_picture')) { echo $this->session->userdata(''profile_picture); } ?>" />

注意需要注意的是,您可以在用户登录时设置会话,然后将图片添加到模板中的导航栏。

希望这有帮助

答案 1 :(得分:0)

我只是对我的代码进行了简单的更改,并按照上述答案的会话理念进行操作。以下代码解决了我的问题。

 public function login_admin($username,$password)
{
    $query=$this->db->where(['Username'=>$username,'Password'=>$password])->get('dc_admin');
    //this is for single record

    if($query->num_rows()>0)
    {
        $rw = $query->row();
        $q = $rw->Profile_Image;
        $this->session->set_userdata('prfimg', $q);
        $this->session->set_userdata('logged_in',$username);
        redirect('Master/Users');
    }
    else
    {
        redirect('Master');
    }

}