我尝试了不同的方法,但到目前为止还没有。这里有类似的主题,但它们似乎无法解决我的特殊情况。我想从“图像”表中显示单个用户个人资料图像,并带有指向“用户”表的外键链接。我有一个可行的方案,但它使用“ 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”表中的单个图像的方法,该方法会考虑到活动的“ user_id”,它是“ images”表中的外键?换句话说,将用户所需的图像显示为个人资料。
感谢您的帮助。感谢所有输入。
答案 0 :(得分:0)
在模型函数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
循环
查看
根据您提供的表格数据,仅使用src
标签的img
属性中的变量来保存图像完整路径
<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;?>