Symfony - 在INSERT,UPDATE或DELETE中以不同方式验证实体

时间:2016-10-12 08:13:17

标签: doctrine-orm symfony symfony-forms symfony-validator

我想在创建,更新或删除实体时以不同方式验证实体原则。

我的实体类中有一个实体约束验证器。

estimate_xmin(m, xmins=c(10, 100, 1000, 10000))

在我的CustomConstraint中,我想确定是否将更新,创建或删除实体以执行特定验证器。

使用工作单元是一种解决方案吗?

最好的方法是什么?

我认为这个问题在很多应用中很常见?

谢谢所有;)

2 个答案:

答案 0 :(得分:4)

您可以使用validation groups based on the submitted data或通过传递验证组创建表单来处理它。 例如,在创建表单时在控制器中;

$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;
    }

答案 1 :(得分:1)

这就是验证组的用途。

由于Symfony Forms从实体注释中读取验证并在内部使用Validator组件,因此您需要查看文档中的这些文章:

相关问题