动态显示单个个人资料图像
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;?>
我尝试了不同的方法,但到目前为止一无所获。这里有类似的主题,但它们似乎没有解决我的特殊情况。我想显示从带有外键 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;?>