如果数据库中不存在特色图像,如何显示后备图像

时间:2018-10-02 19:10:28

标签: php laravel

如果属性没有特色图片,我想显示一个后备图片,并尝试使用访问器。

public $uploads = 'images/';

public function getFeaturedImageAttribute($path){
    return $this->uploads . $path;
}

public function photoPlaceholder(){
    return "https://ibin.co/4C4hfps5SKiw.jpg";
}

我认为我有这个:

<img class="img-responsive" src="{{$prop->featured_image ? $prop-featured_image : $prop->photoPlaceholder()}}" alt="{{$prop->heading}}">

现在我没有精选图片,但是没有显示后备广告。

1 个答案:

答案 0 :(得分:1)

此答案是假设您提供的代码是Eloquent模型。

根据您对featured_image的访问者/更改者,它将始终返回images/

如果featured_image作为一列存在于数据库中,则$path将是原始值。因此,您可以写一张支票:

public function getFeaturedImageAttribute($path) {
  if ( $path ) {
    return $this->uploads.$path;
  }
  return 'https://ibin.co/4C4hfps5SKiw.jpg';
}

现在,您不需要{{ $prop->featured_image ? .. : .. }},只需要{{ $prop->featured_image }}