Laravel - Валидация правил группировки - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь проверить форму, где пользователь может изменить контакты и выбрать или изменить предпочтительный контакт.В трех случаях поля могут быть переданы для проверки.

  1. contact, contact_id, предпочтительный (обновление контакта и установка его в качестве предпочтительного)
  2. contact_id, предпочтительный (установкаcontact как предпочтительный)
  3. contact, contact_id (обновление контакта)

Сейчас я борюсь с правилами валидации для сопряжения этих полей, поэтому пропущенное поле в любом случае сгенерируетошибка.

Редактировать: это правило, которое я придумал: -

public function rules() {
    $request = Request::all();

    return [
          'contact_id' => [
            'bail',
            'numeric',
            'not_in:0',
            Rule::exists('user_contact')->where(function ($query) use ($request) {
                $query->where('contact_id', $request['contact_id'])->where('user_id', Auth::user()->id);
            }),
        ],
        'contact' => [
            'bail',
            'required_with:contact_id',
            'regex:/^[7-9][0-9]{9}$/',
            'unique:user_contact,contact_no'
        ],
        'is_preferred' => [
            'sometimes',
            'required_with:contact_id',
            'in:true,false',
        ]
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...