我有一个由类FormatInstance
给出的复杂数据类型,其中包含一些具有属性的属性,例如#[Assert\NotBlank]
。
我正在将此类用作我的实体中数组的一部分,如下所示:
#[ORM\Column(type: Types::JSON, nullable: true)]
#[Assert\All([
new AssertFormatInstance
])]
private ?array $formatInstances = [];
AssertFormatInstance
断言旨在验证我的FormatInstance
属性的相互作用,但我也想通过“正常”验证来运行数组的每个元素,以检查非自定义断言属性,如上述的Assert\NotBlank
等。
但事实证明,Assert\Valid
不能嵌套到Assert\All
中,像这样做:
#[ORM\Column(type: Types::JSON, nullable: true)]
#[Assert\All([
new AssertFormatInstance
])]
#[Assert\Valid]
private ?array $formatInstances = [];
这也行不通。 (编辑:它实际上确实解决了问题,但“真正”的错误掩盖了这个问题。仍然接受了已接受的答案,因为有关集合的有价值的信息。)
有没有可能以某种方式使这个工作起来,或者我必须在我的AssertFormatInstanceValidator
中“手动”检查所有内容?
#[Assert\Valid]
放在 "All" 外面确实起了作用,但“真正”的问题被我的代码中的另一个错误掩盖了。 - Wolfone