2016-12-16 13 views
1

アップロードされたファイルが、画像またはMIMEタイプがvideo/mp4(mp4ビデオ)のファイルであるかどうかを確認できます。しかし、検証に「OR」条件が必要なので、これを行う方法がわかりません。バリデーション "OR"条件

は今、私が持っているすべての画像のチェックです:

$validator = Validator::make(array('fileUpload' => $fileUpload), [ 
    'fileUpload' => 'required|image', 
]); 

は、どのように私は、ファイルがvideo/mp4のMIMEタイプを持っている場合もチェックして「OR」条件を追加することができますか?

答えて

0

あなたがこれを行うには、独自の検証ルールを記述することができます。

https://laravel.com/docs/5.3/validation#custom-validation-rules

ユアーズはこのようなものになります。

Validator::extend('img_or_mp4', function ($attribute, $value, $parameters, $validator) { 
    return X; // Check the data in $value to see if it's an image or mp4 
}); 

を次に、あなたのルールは次のようになります。

'fileUpload' => 'required|img_or_mp4', 
+0

これは、このカスタム検証ルール内の 'image'検証ルールを書き直すという意味ではありませんか? –

+0

これはあなたが 'image'を使わないことを意味しますが、' image'と似た何かをする独自のロジックを書くでしょう、PLUSはmp4を許します。 – mopo922

2

MIME Types ruleまたはを使用することもできます:

$validator = Validator::make(
    ['fileUpload' => $fileUpload], 
    ['fileUpload' => 'required|mimetypes:image/jpeg,image/bmp,image/png,video/mp4'] 
); 
関連する問題