2016-05-13 8 views
0

私はlaravelで新しく、私はlaravelでfileststemで働いています (私は普通のfileststemプロセスを作りたいと思っています-make dir - copy-put -delete-電気ショック療法)私はlaravelのStorage Facadeの実装が見つかりません

私はlaravel「ストレージ」ファサード を使用していますが、私は

を入力したとき、私は以下の例のために

私のコードでは、このような上
use Illuminate\Support\Facades\Storage; 

をクラスを参照:

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

何も起こらない、と私はクラスコードを参照するとき、私は、この発見:

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'; 
    } 
} 

だからここでの実装であり、あなたが ファイルシステム・プロセスに対処するための別の方法を持っている場合ではなく、「ストレージ」以外をファサード ??

答えて

0

ストレージがfacadeで、ここにあるクラスFilesystemアクセス:vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php

あなたはコードスニペットはStorageを使用official filesystem documentationで見ることができるようにします。

UPDATE:

あなたはStorageファサードを使用できるようにuse Storage;を追加する必要があります。

+0

する必要がありますなぜファイルシステムクラスを指していないのですか? – hikefd

+0

素晴らしい作品です!あなたは 'Storage'の実装がどこにあり、それが私の投稿のファイルにあるのか尋ねました;) – codedge

0

public_path関数はパブリックディレクトリ、つまりlaravelアプリケーション内のパブリックディレクトリへの完全修飾パスを返します。 Storageを使用する場合、パスはstorage/appディレクトリに設定されます。

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 
} 

変更されたコードは、私は私のコンストラクタで「ファイルシステム」を使用し、それが作品だが、戻って「ストレージ」ファサードクラスは、私の場合には仕事をしない理由、私の元の質問に

if(Storage::has($oldImage)){ 
    Storage::delete($oldImage); 
} 
関連する問題