Добрый день
Задаю этот вопрос не в первый раз - так как обычно не всегда получается донести что именно "не получается", поэтому извините за излишнюю подробность
Использую Laravel v5.8
Есть форма с которой приходят 3 параметра A,B,C
Для стандартной валидации обычно привык использовать FormRequest, и в данном случае он будет выглядеть примерно так:
public function rules()
{
return [
'A'=>['required','min:2'],
'B'=>['required','min:5'],
'C'=>['required','email'],
];
} // func
Далее, если мне надо проверить какое то поле на более сложную логику, которая не укладывается в стандартные правила, я создаю custom Rule и запихиваю туда эту самую логику - с этого момента в FormRequest'e метод валидации выглядит примерно так:
public function rules()
{
return [
'A'=>['required','min:2', new CustomValidationRule],
'B'=>['required','min:5'],
'C'=>['required','email'],
];
} // func
Как мы знаем - в CustomValidationRule есть метод passes в который передаются $attribute, $value - то есть все что надо для проверки поля A, но другие параметры туда не передаются
Моя ситуация - мне надо проверить не просто отдельно каждое поле на какую-то логику, а сразу все поля, что то типа если A=5 то B должно быть больше 22 а C должна быть мылом от gmail а не от mail.ru
Для начала я подумал про метод withValidator который можно описать в FormRequest и добавить туда проверки
Но если мне эта кастомная проверка понадобится еще в другом FormRequest'e - то получается я должен буду дублировать код
Собственно вот в это и вопрос - как сделать кастомное правило в которое можно передать сразу несколько параметров из реквеста, а не только одну пару ключ-значение ?
Как и откуда правильно вызвать это правило, чтобы оно отработало сразу после валидации статичными правилами ?
Может это вообще не тот инструментарий ?
Я могу создать отдельный класс с отдельными методами для проверки - заинжектить его в FormRequest, но не получится ли так что я создам велосипед, когда все уже есть ?