【问题标题】:Laravel validator fails if response is false如果响应为假,Laravel 验证器将失败
【发布时间】:2020-06-01 20:09:23
【问题描述】:

我的请求中有一个 laravel 验证器,它设置为必需,问题是当响应 [0]['answer'] = false 时验证失败。我在前端有一个清单,用户提交的是真还是假,所以我想将假视为实际响应并应该通过验证,当响应 [0] ['answer' 时我如何允许它通过验证] = 假

{
    "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

【问题讨论】:

  • 当你说“问题是即使 request = false 验证失败”是什么意思?
  • 您的问题需要重新表述,不清楚您要完成什么。
  • @KennyHorna 例如responses[0]['answer'] = false 我想将其视为有效答案并应通过验证器上的“必需”规则
  • @Mika 所以对于每个答案,你想接受一个布尔值或字符串,对吗?
  • @KennyHorna 是的

标签: laravel laravel-validation


【解决方案1】:

nullable 规则添加到验证字符串中:

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

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 2021-02-10
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2014-08-17
    • 2021-10-16
    • 2018-03-06
    • 2018-05-21
    相关资源
    最近更新 更多