Jea*_*EAU 2 symfony-forms symfony doctrine-orm symfony-validator
我想在创建、更新或删除实体时以不同的方式验证实体原则。
我的实体类中有一个实体约束验证器。
// src/AppBundle/Entity/AcmeEntity.php
use AppBundle\Validator\Constraints as AcmeAssert;
/**
* @AcmeAssert\CustomConstraint
*/
class AcmeEntity
{
// ...
protected $name;
// ...
}
Run Code Online (Sandbox Code Playgroud)
在我的 CustomConstraint 中,我想确定实体是否会被更新、创建或删除以执行特定的验证器。
使用工作单元是一种解决方案吗?
做这个的最好方法是什么?
我认为这个问题在很多应用程序中都很常见?
谢谢大家 ;)
您可以根据提交的数据使用验证组,也可以在通过传递验证组创建表单时处理它。例如,在您的控制器中创建表单时;
$form = $this->createForm(new AcmeType(), $acme, ['validation_groups' => ['create']]);
Run Code Online (Sandbox Code Playgroud)
那么你的实体会是这样的;
/**
* 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |