fluoresce / validate-embedded
约束启用基于组的嵌入式对象验证,使用 Symfony 验证组件。
1.3.0
2023-05-23 09:55 UTC
Requires
- php: >=5.5.9
- symfony/validator: ~2.8|~3.0|~4.0|~5.0|~6.0
README
此库为 Symfony 验证组件 提供了 Validate
约束。
此约束的行为类似于内置的 Valid
约束,但尊重 groups
选项。此外,它还增加了一个选项来指定要针对嵌入式对象(s)的验证组。
安装
打开命令行控制台,进入您的项目目录,然后执行以下命令以下载此包的最新稳定版本
$ composer require fluoresce/validate-embedded
此命令需要您全局安装 Composer,具体请参阅 Composer 文档中的 安装章节。
文档
以下示例假设您正在使用完整的 Symfony 框架,尽管此包可以用于任何有 Symfony 验证组件的项目
基本用法
此示例显示了一个 Author
,它包含一个 Book
集合。当对 Author
的 group1
运行验证时,它将级联到所有嵌入的 Book
实例。
这里的操作略有不同于标准的 Valid
约束,因为对 Book
实例的验证是以默认组运行的。
<?php use Fluoresce\ValidateEmbedded\Constraints as Fluoresce; class Author { /** * @var Book[] * @Fluoresce\Validate(groups={"group1"}); */ private $books; }
<?php use Symfony\Component\Validator\Constraints as Assert; class Book { /** * @var string * @Assert\NotBlank() */ private $title; }
指定嵌入式验证组
假设我们想要为 Book
实例指定不同的验证组。我们可以在 Validate
注解中指定它们。
<?php use Fluoresce\ValidateEmbedded\Constraints as Fluoresce; class Author { /** * @var Book[] * @Fluoresce\Validate(embeddedGroups={"bookgroup1"}); */ private $books; }
<?php use Symfony\Component\Validator\Constraints as Assert; class Book { /** * @var string * @Assert\NotBlank(groups={"bookgroup1"}) */ private $title; }
现在,每次验证 Author
实例时,嵌入式 Book
将使用验证组 bookgroup1
进行验证。
结合所有选项
此示例结合了之前的示例,以显示如何共同操作。
<?php use Fluoresce\ValidateEmbedded\Constraints as Fluoresce; class Author { /** * @var Book[] * @Fluoresce\Validate(groups={"group1"}, embeddedGroups={"bookgroup1"}); */ private $books; }
<?php use Symfony\Component\Validator\Constraints as Assert; class Book { /** * @var string * @Assert\NotBlank(groups={"bookgroup1"}) */ private $title; }