2017-07-19 14 views
-1

Ich habe ein Problem, I have already read this question, aber leider funktionieren die Antworten nicht.file_exists funktioniert nicht in Laravel 5.4

Ich wünschte, wenn kein Bild gefunden wird, druckt er das Platzhalterbild.

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) }}"> 

Wie Sie sehen können, in der Klinge ich das src zweimal setzen, dies zu überprüfen, ob das Bild, das ich wirklich bin Bezug vorhanden ist, es in der Tat.

Warum erscheint in meinem ersten img src die "no-cover.png" und nicht das Bild?

+0

Warum Sie nicht verwenden 'public_path()'? –

+0

Vielen Dank, ich habe meinen Fehler gefunden ... – LegoLiam

+1

file_exists benutzt das Dateisystem, so dass '/ upload' wörtlich das Upload-Verzeichnis im Root-Pfad des Servers und nicht des Web-Verzeichnisses bedeutet. – Devon

Antwort

1

Sie sollten die "Storage" Fassade für diesen Zweck verwenden wird es mehr "Laravel-way" sein.

use \Illuminate\Support\Facades\Storage; 

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

Siehe "Storage" documentation.

0

mit Fixed:

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