gpt4 book ai didi

validation - Symfony2 针对整个实体的验证

转载 作者:行者123 更新时间:2023-12-05 00:35:16 25 4
gpt4 key购买 nike

我需要能够在 Symfony2 中对整个实体进行复杂的自定义验证。

例如:我的 entity有很多subentities ,以及所有 subentities总和必须是 100。

据我所知,Symfony2 验证器只验证单个字段?

最佳答案

答案是肯定的。您需要针对对象而不是参数指定约束,并指定其为类级别约束的约束。一个有点冗长的例子是这样的:

配置文件

validator.my.uniquename:
class: FQCN\To\My\ConstraintValidator
arguments: [@service_container]
tags:
- { name: validator.constraint_validator, alias: ConstraintValidator }

验证.yml
FQCN\To\My\Entity:
constraints:
- FQCN\To\MyConstraint: ~

(此示例中的约束没有参数)

我的约束
namespace FQCN\To;

use
Symfony\Component\Validator\Constraint
;

/**
* @Annotation
*/
class MyConstraint extends Constraint
{
public $message = 'Constraint not valid';

public function validatedBy()
{
return 'ConstraintValidator';
}

public function getTargets()
{
# This is the important bit.
return self::CLASS_CONSTRAINT;
}
}

我的约束验证器
class MyConstraintValidator extends ConstraintValidator
{
protected $container;

function __construct($container)
{
$this -> container = $container;
}

function isValid($object, Constraint $constraint)
{
# validation here.
return true;
}
}

关于validation - Symfony2 针对整个实体的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9676410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com