Laravel 検証ルール フィールドが空の場合、別のフィールドが必要です 質問する

Laravel 検証ルール フィールドが空の場合、別のフィールドが必要です 質問する

私は Laravel 5.3 アプリと、ユーザー プロファイル値を送信する更新フォームを持っています。そのうちの 1 つはユーザー画像で、そのための非表示入力フィールドを作成しています。そのため、ユーザーが新しい画像をアップロードしていない場合でも、古い画像値を持つ非表示フィールドがあることを確認できます。

<input type="hidden" class="form-control" name="old_image" value="{{ $player->image_filename }}" id="oldImage">

画像を削除すると、非表示の入力値は空になります。

document.getElementById('oldImage').value = '';

これが、ユーザー画像を更新する方法の 1 つです。ただし、そのフォームの検証ルールを設定する方法がわかりません。次のようなものになります。

    public function rules()
    {
        return [
          'first_name' => 'required|max:50',
          'last_name' => 'required|max:50',
          'birthday' => 'required',
          'image' => required if old_image empty
        ];
    }

と を試しましたが'image' => 'required_without:old_image','image' => 'required_if:old_image, null',どちらも画像が見つからないというエラー メッセージは表示されませんでした。次のようなエラー メッセージが表示されます。

ベストアンサー1

2つのルールで作業できます

'image' => 'required_if:old_image'

または:

'image' => 'required_without:old_image'

おすすめ記事