Laravel валидатор не работает, если ответ ложный - PullRequest
1 голос
/ 17 февраля 2020

У меня есть запрос laravel по моему запросу, который установлен как обязательный, проблема заключается в том, что проверка завершается неудачно, когда отклики [0] ['answer'] = false. У меня есть контрольный список во внешнем интерфейсе, который пользователь отправляет либо true, либо false, поэтому я хочу рассматривать false как фактический ответ и должен пройти проверку, как я могу позволить этому пройти проверку, когда ответы [0] ['answer' ] = false

{
    "id": 50,
    "type": "forum",
    "responses": [
        {
            "question_id": 89,
            "answer": false
        },
        {
            "question_id": 90,
            "answer": true
        },
        {
            "question_id": 91,
            "answer": "this is a input type answer"
        }
    ]
}

и вот как выглядит валидатор

$request->validate([
 'id' => 'required',
 'responses.*.question_id' => 'required',
 'responses.*.answer_id' => 'required_if:responses.*.answer,""',
 'responses.*.answer' => 'required_if:responses.*.answer_id,"",
]); 

я подтверждаю, что

responses['*']['answer'] 

требуется, но я хочу разрешить это, даже если

responses['*']['answer'] = false

1 Ответ

0 голосов
/ 18 февраля 2020

Добавьте правило nullable в строку проверки:

 'responses.*.answer' => 'nullable|required_if:responses.*.answer_id,"",
...