【问题标题】:Dynamically display a single profile image动态显示单个配置文件图像
【发布时间】:2019-01-16 05:12:17
【问题描述】:

我尝试了不同的方法,但到目前为止没有。这里有类似的主题,但它们似乎并没有解决我的特殊情况。我想显示来自“images”表的单个用户个人资料图像,其中包含指向“users”表的外键链接。我有一个可行的方案,但它使用“foreach”语句显示多个图像。图像也保存在根目录的本地“上传”文件夹中。以下是适用于视图中多个图像的代码:

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

其中“fileName”是“images”表中的列。 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”表中的单个图像,该方法会考虑到“images”表中的外键活动“user_id”?换句话说,将用户想要的图像显示为个人资料。

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

【问题讨论】:

  • 在您的模型函数中,您从表中获取所有记录,因此显示了多个图像。您希望显示单个用户图像吗?

标签: codeigniter foreign-keys image-uploading user-profile


【解决方案1】:

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

您的会话中有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 循环

查看

根据您提供的表格数据,保存图像完整路径仅使用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;?>

【讨论】:

  • 我想保留显示多张图片的功能。我只是想要添加仅显示 1 个用户配置文件图像的选项。将尝试您的建议并让您知道。非常感谢!
  • 我刚刚使用您建议的代码创建了另一个名为“profile_img”的函数名称。但是我在视图中得到了未定义的变量: fileName;?>" alt="" class="img-thumbnail"> 我不必链接以某种方式通过控制器查看功能?同样,我不想更改多个图像代码,因为它工作正常。
  • 它确实有效。谢谢!但是,如果您可以建议让用户选择图像并显示该单个图像的最佳方法,我将不胜感激。也许通过 fullPath 列?现在,由于“foreach”循环,根据用户显示的图像不止一张。但至少这是一个开始,我也会尝试纠正它。
  • @dreamerdan 我在单用户图像的答案中添加了控制器部分。使用我的答案中的模型查询并查看部分也没有循环。试试看,让我知道。
  • 我会检查并通知您。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多