【Laravel】

ファサードのexistsメソッドを使用してpublicファイル・storageファイル・viewファイルの存在チェックを行う方法

existsメソッドで存在チェックをしよう

投稿日 2021/11/29 更新日 2021/11/29


こんにちは。当サイトの管理者「元木皇天」です。

今回は最近僕がこのサイトのバグを修正した際に調べた、Laravelでファイルの存在チェックを行う方法について解説いたします。

よく使用するところとして今回は、publicフォルダ配下のファイルstorageフォルダ配下のファイルviewsフォルダ配下のファイルの3つについて解説したいと思います。

環境
Laravel:バージョン8.48.2
PHP:バージョン7.4.13

やりたいこと

1. publicフォルダ配下のファイルの存在チェックを行う

2. storageフォルダ配下のファイルの存在チェックを行う

3. viewsフォルダ配下のファイルの存在チェックを行う

参考文献
PHPフレームワーク Laravel実践開発
File::exists()の公式ドキュメント
Storage::exists()の公式ドキュメント
View::exists()の公式ドキュメント

publicフォルダ配下のファイルの存在チェック

まずはpublicフォルダ配下のファイルの存在チェックについてです。

publicフォルダ配下のファイルの存在チェックは、Fileファサードを使用してFile::exists('ファイルパス')のようにして記述します。

use Illuminate\Support\Facades\File;
も忘れずに記述しましょう。

実際に使用すると以下の赤線の箇所のようになります。

use Illuminate\Support\Facades\File;

class sample{
    //publicフォルダ配下にimages/sample.pngが存在するかチェック
    public function sample(){
        return File::exists('images/sample.png');
    }
}

storageフォルダ配下のファイルの存在チェック

次はstorageフォルダ配下のファイルの存在チェックについてです。

storageフォルダ配下のファイルの存在チェックも先ほどと同じようにファサードを使用して行います。

使い方は、Storage::exists('ファイルパス')のようにして使います。

use Illuminate\Support\Facades\Storage;
を忘れずに記述しましょう。

実際に使用すると以下の赤線の箇所のようになります。

use Illuminate\Support\Facades\Storage;

class sample{
    //storageフォルダ配下にsample.pngが存在するかチェック
    public function sample(){
        return Storage::exists('sample.png');
    }
}

viewsフォルダ配下のファイルの存在チェックを行う

viewsフォルダ配下のファイルの存在チェックを行うには、Viewファサードを使用して、View::exists('ファイルパス')というような感じでチェックを行えます。

こちらもここまでで紹介したものと同様に、
use Illuminate\Support\Facades\View;
を忘れずに記載しましょう。

実際に使用すると以下の赤線の箇所のようになります。

use Illuminate\Support\Facades\View;

class sample{
    //viewsフォルダ配下にsample.pngが存在するかチェック
    public function sample(){
        return View::exists('sample.png');
    }
}

まとめ

ファイルの存在チェックはファサードを使用すると簡単にチェックを行える。

File::exists('ファイルパス');

Storage::exists('ファイルパス');

View::exists('ファイルパス');

参考文献・おすすめ文献


File::exists()の公式ドキュメント
Storage::exists()の公式ドキュメント
View::exists()の公式ドキュメント