Я пытаюсь проверить форму, где пользователь может изменить контакты и выбрать или изменить предпочтительный контакт.В трех случаях поля могут быть переданы для проверки.
- contact, contact_id, предпочтительный (обновление контакта и установка его в качестве предпочтительного)
- contact_id, предпочтительный (установкаcontact как предпочтительный)
- 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',
]
];
}