Laravel7 任意/必須画像アップロード時のそれぞれのバリデーション

以下のそれぞれのバリデーションルールを1行で記述する方法。
・画像任意時の新規と編集
・画像必須時の新規と編集

■前提条件

入力フォームは以下とする。
・name(名前)※何でも良い。画像以外の項目もあるという意味。
・picture(画像)
・picture_original(編集時にのみ現在の画像をhiddenで保存)

■画像任意の場合の新規と編集

これは簡単、単に画像が選択された時のみ画像ファイルチェックをすれば良い。

'picture' => 'file|image:jpeg,png,jpg,gif|max:100000',

■画像必須の場合の新規と編集

こちらは画像ファイルチェックに加え、新規の時のみ必須チェックが必要なので、required_withoutとpicture_originalを組み合わせることで実現する。

'picture' => 'required_without:picture_original|file|image:jpeg,png,jpg,gif|max:100000',

つまり、画像が選択されたら画像ファイルチェックをするけど、新規の時だけは画像必須チェックも行うようにする。

新規
 画像選択なし:画像なしでエラー
 画像選択あり:画像チェック
編集
 画像選択なし:チェックなし
 画像選択あり:画像チェック

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です