Validation Symfony验证多个实体和相关实体

Validation Symfony验证多个实体和相关实体,validation,symfony,doctrine,entity,Validation,Symfony,Doctrine,Entity,仅使用Symfony验证器(无表单!),我试图找出如何验证多个实体或(子/相关)实体,并在一个数组/对象中返回错误 例如: 假设我有两个不同的用户实体,我想使用相同的验证组进行验证 使用I可以按如下方式执行此操作: $user1 = ... //first user $user2 = ... //second user $errors = []; $error = $validator->validate($user1, null, ['create']); if(count($erro

仅使用Symfony验证器(无表单!),我试图找出如何验证多个实体或(子/相关)实体,并在一个数组/对象中返回错误

例如:

假设我有两个不同的用户实体,我想使用相同的验证组进行验证

使用I可以按如下方式执行此操作:

$user1 = ... //first user
$user2 = ... //second user
$errors = [];

$error = $validator->validate($user1, null, ['create']);
if(count($error) > 0)
{
    $errors['user1'] = $error;
}

$error = $validator->validate($user2, null, ['create']);
if(count($error) > 0)
{
    $errors['user2'] = $error;
}

if(count($errors) > 0 )
{
   // handle errors
}
这是可行的,但我想知道是否有一个内置的方式这样做? 比如将现有错误传递给验证器,或者将实体数组传递给验证器

当我想验证一个实体及其关系时,也会出现同样的问题

例如:

假设我有一个与用户实体有一对多关系的公司实体

创建新公司时,我也创建了一个新用户

$company = new Company();
$company->set...

$user = new User();
$user->set...

$company->addUser($user);

$validator->validate ...
我想再次验证这家公司和用户。我可以用前面提到的类似方法来做。但是,问题再次出现,是否有一种内置方式来传递现有错误,或者让验证器也验证相关实体(可能是验证组?)

谷歌搜索这个问题几乎没有给我带来任何好的结果,所以我希望有人能给我指出正确的方向

或者我应该自己实现这样的逻辑(这不是问题),我只是想防止重写已经存在的逻辑


提前谢谢

如果要验证相关实体,请使用
@Valid
注释

如果您希望在一次快照中验证实体数组,一个解决方案可以是另一个类,该类包含此数组和
@Valid
注释的集合。关键是,您不需要表单来验证对象,也不需要实体。只需使用带有验证注释的普通旧PHP对象


如果另一个对象类对您来说非常重要,那么可以动态创建约束,并通过集合传递给验证器服务。在Symfony文档的一章中,您可以找到一个详细信息(第二个示例)。

您可以尝试为您的案例添加验证组。来自多个实体的字段可以属于一个验证组,您可以验证“母亲”实体OK是我认为可能的,多个(非相关)实体如何?对于实体集合,请使用@Valid:Awesome one进行关系验证,现在我只需确定是否需要实现自定义逻辑来验证实体数组(例1)