我有一个用户表,其中用户当前已登录并且尚未上传照片(用户表中的图片列为空) 显示的图片是Default.png。如果用户上传了图片,则显示图像。
我的代码有什么问题?
这是我的数据库中的表'user'(对不起,我不能在这里写数据库结构)。
| id | gb_user | = | 1 | me.jpg |
此视图(headers.php):
<?php $user_log = info_user_login();?>
<?php if(!empty($user_log->gb_user) == NULL):?>
<img class="img-circle" src="../assets/img/default.png" width="70" style="margin:20px 0 0 10px;">
<?php else:?>
<img class="img-circle" src="../assets/img/<?php echo $user_log('gb_user');?>" width="70" style="margin:20px 0 0 10px;">
<?php endif;?>
这个助手:
function info_user_login(){
$CI = & get_instance();
$CI->load->model('admin/setting_adm');
$get_data_login = $CI->setting_adm->get_data_log_user();
return $get_data_login;
}
和这个模型:
function get_data_log_user(){
$id_login = $this->session->userdata('id');
$this->db->where('id', $id_login);
$this->db->from('user');
$q = $this->db->get();
return $q->result();
}
ID = session_id_login
答案 0 :(得分:0)
<?php if(!empty($user_log->gb_user) == NULL):?>
这个条件没有意义,empty()将返回一个布尔值。
尝试以下方法之一:
<?php if(empty($user_log->gb_user)):?>
<?php if($user_log->gb_user == NULL):?>
答案 1 :(得分:0)
试试这个......
使用ternary operator(:?)
检查您是否有图像。
查看:
<?php $user_log = info_user_login();
$image = isset($user_log->gb_user)?"../assets/img/$user_log->gb_user":"../assets/img/default.png";//sets your image
?>
<img class="img-circle" src="<?php echo $image;?>" width="70" style="margin:20px 0 0 10px;">
答案 2 :(得分:0)
只需使用empty()
功能检查图像是否存在。如果true
字段中没有值,则该函数将返回gb_user
。
<?php if( empty($user_log->gb_user) ): ?>
<img class="img-circle" src="../assets/img/default.png" width="70" style="margin:20px 0 0 10px;" />
<?php else: ?>
<img class="img-circle" src="../assets/img/<?php echo $user_log('gb_user');?>" width="70" style="margin:20px 0 0 10px;" />
<?php endif;?>
答案 3 :(得分:0)
您可以像HTML if image is not found一样使用Js / HTML方法:
<img id="currentPhoto" src="SomeImage.jpg" onerror="this.src='Default.jpg'" width="100" height="120">
但不是在开头设置默认图像,而是创建另一个隐藏图像
<img src="<?=$myImage?>" onerror="getElementById("default-img").src" />
即使$myImage
为空,php也将其呈现为空字符串,DOM将此视为错误,并且将触发事件“onError”