Позвольте мне описать мой сценарий. Вот форма похожа на мою:Пользовательский валидатор Laravel 4.2 для объединения required_if OR required_without
<select name="colors">
<option value="1">Dark red</option>
<option value="2">Light red</option>
<option value="3">Dark green</option>
<option value="4">Light green</option>
</select>
<input type="text" name="textbox-field">
<input type="checkbox" name="checkbox-field" value="1">
Я хотел бы подтвердить textbox-field
ИЛИ checkbox-field
, на основании которого выбирается значение на colors
. Проблема заключается в том, что textbox-field
и checkbox-field
являются взаимоисключающими, что означает, что только один из них должен быть заполнен, когда заданы значения colors
.
Если бы я имел одно поле я мог бы просто использовать встроенный в правиле required_if, как это:
'textbox-field' => "string|required_if:colors,3,4"
Однако то, что я хочу достигнуть, somethink как это, но с оператором ИЛИ между двумя последними правилами :
'textbox-field' => "string|required_if:colors,3,4|required_without:checkbox-field"
'checkbox-field' => "numeric|required_if:colors,3,4|required_without:textbox-field"
можно ли создать правило проверки пользовательских который будет сочетать в себе required_if и required_without с помощью ИЛИ логического оператора?
AS Я знаю правила в сочетании с и, поэтому вы можете написать свое собственное правило правильности. – mcklayin
Это правда, любая помощь в том, как я могу реализовать пользовательскую проверку для этого случая? Можно ли использовать встроенные правила проверки внутри пользовательского? – LePhleg
Чтобы ответить на мои собственные вопросы сверху, да, можно использовать встроенные правила внутри нового настраиваемого валидатора, если он реализован внутри класса, который расширяет 'Illuminate \ Validation \ Validator'. Таким образом, он будет иметь доступ к защищенным функциям, которые реализуют все встроенные правила, такие как 'validateRequiredIf()' и 'validateRequiredWithout'. Проверьте приведенный ниже код для конкретного примера. – LePhleg