获取 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" 属性的技巧?
$fields
是 public 属性 的 UniqueEntity
约束,所以你可以做类似
$entityConstraints = array_merge($entityConstraints, $constraint->fields);
我试图在一个 "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" 属性的技巧?
$fields
是 public 属性 的 UniqueEntity
约束,所以你可以做类似
$entityConstraints = array_merge($entityConstraints, $constraint->fields);