Doctrine orm Symfony-在插入、更新或删除中以不同方式验证实体
我希望在创建、更新或删除实体时以不同的方式验证实体原则 在我的实体类中有一个实体约束验证器Doctrine orm Symfony-在插入、更新或删除中以不同方式验证实体,doctrine-orm,symfony,symfony-forms,symfony-validator,Doctrine Orm,Symfony,Symfony Forms,Symfony Validator,我希望在创建、更新或删除实体时以不同的方式验证实体原则 在我的实体类中有一个实体约束验证器 // src/AppBundle/Entity/AcmeEntity.php use AppBundle\Validator\Constraints as AcmeAssert; /** * @AcmeAssert\CustomConstraint */ class AcmeEntity { // ... protected $name; // ... } 在我的Custom
// src/AppBundle/Entity/AcmeEntity.php
use AppBundle\Validator\Constraints as AcmeAssert;
/**
* @AcmeAssert\CustomConstraint
*/
class AcmeEntity
{
// ...
protected $name;
// ...
}
在我的CustomConstraint中,我想确定是否要更新、创建或删除实体以执行特定的验证器
使用工作单元是解决方案吗
做这个最好的方法是什么
我认为这个问题在很多应用中都很常见
谢谢大家;) 通过传递验证组创建表单时,可以使用或处理它。
例如,创建表单时在控制器中
$form = $this->createForm(new AcmeType(), $acme, ['validation_groups' => ['create']]);
然后你会是这样的
/**
* Get name
*
* @Assert\Length(min=2, max=11, groups={"create", "update"})
* @AcmeAssert\ContainsAlphanumeric(groups={"create"}) // only applied when create group is passed
* @return string
*/
public function getName()
{
return $this->name;
}
这就是创建验证组的目的 由于Symfony表单从实体注释中读取验证,并在内部使用验证程序组件,因此您可以在文档中查看以下文章: