【问题标题】:Respect Validation: What's the right validation rule when a form has several fields with the same name?尊重验证:当表单具有多个同名字段时,正确的验证规则是什么?
【发布时间】:2018-08-14 20:08:22
【问题描述】:

我有一个只有字段的表单:

  • 问题
  • 选择

Choice 是一个数组,因为问题不仅仅是答案,用户可以根据需要添加任意数量。

我只需要验证这些不是空的,所以我尝试了:

$validation = $this->c->validator->validate($request, [
            'question' => v::notEmpty(),
            'choice[]' => v::ArrayVal()->each()->notEmpty()
        ]);

但它不允许我保存任何条目。如果我将选择 [] 作为“选择”,它会验证每个条目。我认为规则一定是错误的。

【问题讨论】:

    标签: php validation respect-validation


    【解决方案1】:

    您可以使用KeySet 验证器:

    $response = v::keySet(
        v::key('question', v::notEmpty()),
        v::key('choice', v::arrayVal())
    )->validate($request);
    

    如果你使用给定的值:

    $request = [
        'question' => 'What is your first name?',
        'choice' => []
    ];
    

    验证返回true

    如果你使用给定的值:

    $request = [
        'question' => 'What is your first name?',
        'choice' => ''
    ];
    

    验证返回false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-16
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多