2017-07-19 83 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'; 
    } 
    }