2016-05-13 6 views
0

Ich bin neu mit Laravel und ich arbeite in Filestem auf Laravel (Ich möchte üblichen Filestem-Prozess wie -make dir tun - kopieren - put -delete - ect)Ich kann die Implementierung für Storage Facade in Laravel nicht finden

ich Laravel "Storage" Fassade verwenden, aber wenn ich tippe

i die Klasse oben wie dies in meinem Code verweisen

use Illuminate\Support\Facades\Storage; 

zum Beispiel unter:

if (file_exists(public_path($oldImage))) { 
       Storage::delete($oldImage); 
      } 

nichts passiert, und wenn ich in die Klasse Code verweise ich fand diese:

namespace Illuminate\Support\Facades; 

/** 
* @see \Illuminate\Filesystem\FilesystemManager 
*/ 
class Storage extends Facade 
{ 
    /** 
    * Get the registered name of the component. 
    * 
    * @return string 
    */ 
    protected static function getFacadeAccessor() 
    { 
     return 'filesystem'; 
    } 
} 

also wo ist die Implementierung und wenn Sie alternative Art und Weise mit Dateisystem Prozess zu behandeln und nicht als „Storage“ Fassade ??

Antwort

0

Storage ist ein facade und greift auf die Klasse Filesystem hier zu finden: vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php

Wie Sie im official filesystem documentation die Code-Schnipsel Storage verwenden sehen können.

UPDATE:

Sie sollten use Storage; hinzufügen zu können, die Storage Fassade verwenden.

+0

ich in meinem Konstruktor „Filesystem“ verwendet und es ist funktioniert, aber auf meine ursprüngliche Frage zurück, warum „Storage“ Fassadenklasse die Arbeit in meinem Fall nicht tun ,,, warum es nicht auf die Klasse "Dateisystem" zeigt !! – hikefd

+0

Großartig, dass es funktioniert! Sie haben gerade gefragt, wo die Implementierung von "Storage" ist und es ist in der Datei in meinem Post;) – codedge

0

Die Funktion public_path gibt den vollständig qualifizierten Pfad zum öffentlichen Verzeichnis zurück, dh das öffentliche Verzeichnis in der Laravel-Anwendung. Bei Verwendung von Speicher ist der Pfad auf das Speicher-/Anwendungsverzeichnis eingestellt.

if (file_exists(public_path($oldImage))) { 
    //public_path($oldImage) will check for file in public directory 
    Storage::delete($oldImage); //Will delete file in storage/app directory 
} 

sollte der modifizierte Code

seine
if(Storage::has($oldImage)){ 
    Storage::delete($oldImage); 
}