获取 UniqueEntity 约束的字段

getting the fields of UniqueEntity constraints

我试图在一个 "usable" 数组(前面)中获取我实体的所有约束。 虽然我已经找到如何针对附加到属性的约束(例如非空白、长度等)执行此操作,但我在查找 UniqueEntity 时遇到了麻烦。

我正在使用此处编写的脚本: symfony2 get all validation constraints on an entity (yml, xml, annotations)

似乎在里面:

$propertyMetadata=$metadata->getPropertyMetadata($constrainedProperty);

未出现 UniqueEntity 约束。

所以我尝试添加这段代码:

$entityConstraints = [];

    foreach($metadata->getConstraints() as $constraint)
    {
        var_dump($constraint);
        array_push($entityConstraints,$constraint->getTargets());
    }

它们在这里,但这些 $constraints 是 Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity 对象,我不能将其用作数组来提取其属性 "fields" 也没有允许这样做的方法。

还有其他方法吗?或者我可以用来获取此 "fields" 属性的技巧?

$fieldspublic 属性 的 UniqueEntity 约束,所以你可以做类似

 $entityConstraints = array_merge($entityConstraints, $constraint->fields);