2017-07-19 85 views
-1

我有一个问题,I have already read this question,不幸的是,给我的答案不起作用。file_exists在Laravel 5.4中不工作

我希望当没有找到图片时,他会打印占位符图像。

Models: 
public function cover() 
     { 
     if(file_exists('/upload/cover/'.$this->immagine)) { 
      return url('/upload/cover/'.$this->immagine); 
     } else { 
      return url('/upload/cover/no-cover.png'); 
     } 
     } 

Blade: 
      <img src="{!! $info_giochi->cover() !!}" 
      <img src="{{ url('upload/cover/'.$info_giochi->immagine) }}"> 

正如你所看到的,我把SRC两次刀片,这种以验证我指的是图像确实存在,其实有。

为什么在我的第一个img src中会显示“no-cover.png”而不是图片?

+0

为什么你不使用'public_path()'? –

+0

非常感谢,我发现我的错误... – LegoLiam

+1

file_exists使用文件系统,所以'/ upload'字面意思是上传目录在服务器的根路径而不是Web目录。 – Devon

回答

1

您应该使用“存储”门面为此,它会更“Laravel路”。

use \Illuminate\Support\Facades\Storage; 

Storage::disk('public')->exists('/upload/cover/' . $this->immagine); 

"Storage" documentation.

0

修正了:

public function cover() 
    { 
    if(file_exists(public_path('/upload/cover/'.$this->immagine))) { 
     return '/upload/cover/'.$this->immagine; 
    } else { 
     return '/upload/cover/no-cover.png'; 
    } 
    }