Symfony 关系验证

Symfony Validation on Relations

假设我有以下实体: 比萨 PizzaType = [奶酪、肉类、蔬菜、至尊] 配料 = [意大利辣香肠、香肠、辣椒、蘑菇]

当我创建披萨并将其类型设置为肉类时,我希望能够验证是否只选择了“肉”类型的浇头,与蔬菜相同,而至尊允许任何浇头(肉或蔬菜) ... 假设每个映射到披萨类型的配料已经有一个 属性。真的只是想知道要使用什么类型的验证器...

您可以将回调传递给表单中所需字段的 validation_groups 选项。回调将可以像这样访问提交的数据

... 'validation_groups' => static function (FormInterface $form) {

$data = $form->getData();

// your logic to determine validation groups

}

在那里您可以检查已提交的内容和return一组验证组,对于您想要的每种类型的实体都不同。

您可以在此处找到更多信息 https://symfony.com/doc/current/form/data_based_validation.html