以下のそれぞれのバリデーションルールを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',
つまり、画像が選択されたら画像ファイルチェックをするけど、新規の時だけは画像必須チェックも行うようにする。
新規
画像選択なし:画像なしでエラー
画像選択あり:画像チェック
編集
画像選択なし:チェックなし
画像選択あり:画像チェック