动态显示单个个人资料图像

Dynamically display a single profile image

我尝试了不同的方法,但到目前为止一无所获。这里有类似的主题,但它们似乎没有解决我的特殊情况。我想显示从带有外键 link 的“图像”table 到“用户”table 的单个用户个人资料图像。我有一个可行的方案,但它使用“foreach”语句显示多个图像。图片也保存在根目录下的本地“uploads”文件夹中。以下是适用于视图中多个图像的代码:

<?php foreach($images_model as $images):?>
<img src="<?php echo base_url()."uploads/".$images->fileName;?>" alt="" class="img-thumbnail">

其中“文件名”是“图像”中的列 table。 images_model 看起来像这样:

function get_images(){      
    $this->db->from('images');      
    $this->db->order_by('date_uploaded', 'asc');                            
    $query = $this->db->get();      
    return $query->result();    
}

控制器的图像上传部分如下:

if($this->upload->do_upload())      {
        $file_data = $this->upload->data();         
        $data['user_id'] =  $this->session->userdata('user_id');
        $data['fileName'] = $file_data['file_name'];
        $data['filePath'] = $file_data['full_path'];
        $data['fileType'] = $file_data['file_type'];
        $data['fileSize'] = $file_data['file_size'];            
        $data['date_uploaded'] = date('Y/m/d H:i:s');
    }   

Here is the necessary portion of the ‘images’ table:

是否有一种无痛的方式来显示来自“images”table 的单个图像,它会考虑到活动的“user_id”,它是“images”中的外键 table?换句话说,将用户想要的图像显示为个人资料。

感谢您的帮助。感谢任何和所有输入。

在您的模型函数 get_images 中,您正在从 table 获取所有记录,因此显示了多个图像。

您的会话中有 user_id 个使用它来获取一条用户记录。

控制器

public function SingleUserImage(){
     $data['images'] = $this->images_model->get_images();
     return $this->load->view('filename', $data);  
}

像这样更改模型查询

型号

function get_images(){ 
    return $this->db->get_where('images', ['user_id' => $this->session->userdata('user_id')])->row();
}

你只有一个用户记录(只有一行)所以不需要使用foreach循环

查看

根据您提供的 table 数据,保存图像完整路径仅使用 img 标签 src 属性中的变量

<img src="<?php echo $images->fileName;?>" alt="" class="img-thumbnail">

更新:-

根据你对循环的要求使用这个

<?php foreach($images_model as $images):
    if($images->user_id == $this->session->userdata('user_id')):?>
       <img src="<?php echo base_url()."uploads/".$images->fileName;?>" alt="" class="img-thumbnail">

<?php endif; endforeach;?>