如何在字段图像表为空时显示默认图像

时间:2017-02-17 10:01:29

标签: php mysql codeigniter

我有一个用户表,其中用户当前已登录并且尚未上传照片(用户表中的图片列为空) 显示的图片是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

4 个答案:

答案 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”