gpt4 book ai didi

symfony - 如何在 Symfony 4 中验证数组数组

转载 作者:行者123 更新时间:2023-12-01 09:13:05 25 4
gpt4 key购买 nike

我想知道如何在 symfony 中验证数组数组。
我的验证规则是:

  • 用户 - NotBlank
  • 日期 - 日期和 NotBlank
  • 礼物 - NotBlank

  • 到目前为止,我已经这样做了:
    $validator = Validation::createValidator();

    $constraint = new Assert\Collection(array(
    'user' => new Assert\NotBlank(),
    'date' => new Assert\Date(),
    'present' => new Assert\NotBlank()
    ));

    $violations = $validator->validate($request->request->get('absences')[0], $constraint);

    但问题是它只允许验证单个数组,例如。 $request->request->get('absences')[0] .

    这是数组的样子:

    enter image description here

    最佳答案

    你必须把Collection内部约束 All约束:

    When applied to an array (or Traversable object), this constraint allows you to apply a collection of constraints to each element of the array.


    因此,您的代码可能如下所示:
    $constraint = new Assert\All(['constraints' => [
    new Assert\Collection([
    'user' => new Assert\NotBlank(),
    'date' => new Assert\Date(),
    'present' => new Assert\NotBlank()
    ])
    ]]);
    更新:如果你想为此使用注释,它看起来像这样:
    @Assert\All(
    constraints={
    @Assert\Collection(
    fields={
    "user"=@Assert\NotBlank(),
    "date"=@Assert\Date(),
    "present"=@Assert\NotBlank()
    }
    )
    }
    )

    关于symfony - 如何在 Symfony 4 中验证数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53374344/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com