mysiar/array-validator

数组验证器

1.1.0 2020-04-28 08:13 UTC

This package is auto-updated.

Last update: 2024-09-23 23:34:13 UTC


README

Build Status

用法

  • 示例

    use Mysiar\ArrayValidator\Validator;
    use Symfony\Component\Validator\Constraints\Callback;
    use Symfony\Component\Validator\Constraints\Choice;
    use Symfony\Component\Validator\Constraints\Date;
    use Symfony\Component\Validator\Constraints\Email;
    use Symfony\Component\Validator\Constraints\NotBlank;
    use Symfony\Component\Validator\Constraints\Positive;
    use Symfony\Component\Validator\Constraints\PositiveOrZero;
    use Symfony\Component\Validator\Context\ExecutionContextInterface;
    
    $validator = new Validator();
    
    $validator->addArrayConstraint(new Callback(function($record, ExecutionContextInterface $context) {
        if (count($record) !== 15) {
            $context->addViolation(sprintf('The array must contain %s columns', 15));
        }
    }));
    
    $validator->addArrayElementConstraint(0, new Positive());
    $validator->addArrayElementConstraint(1, new NotBlank());
    $validator->addArrayElementConstraint(2, new NotBlank());
    $validator->addArrayElementConstraint(3, new NotBlank());
    $validator->addArrayElementConstraint(4, new NotBlank());
    $validator->addArrayElementConstraint(5, new Date());
    $validator->addArrayElementConstraint(6, new Positive());
    $validator->addArrayElementConstraint(7, new NotBlank());
    $validator->addArrayElementConstraint(8, new Email());
    $validator->addArrayElementConstraint(9, new Date());
    $validator->addArrayElementConstraint(10, new Positive());
    $validator->addArrayElementConstraint(12, new Choice([0, 1]));
    $validator->addArrayElementConstraint(13, new PositiveOrZero());
    $validator->addArrayElementConstraint(14, new PositiveOrZero());
  • 注意:如果您使用函数 fgetcsv 按行读取 csv 文件以验证数组元素中的值选择,您可能需要使用以下内容

    $validator->addArrayElementConstraint(2, new Choice(["0", "1"]));
    

    替代

    $validator->addArrayElementConstraint(2, new Choice([0, 1]));
    

致谢

Piotr Synowiec 创建,灵感来源于 deblan/csv-validator