我有以下问题: 我在tableB实体中扩展了一个实体tableA,我想覆盖一个字段上的@ assert / notblank注释。
Class tableA{
...
/**
* @ORM\Column(type="string", length=4)
* @Assert\NotBlank(message="please.enter.a.value")
*/
protected $myfield;
}
扩展类:
Class tableB extends tableA{
...
/**
* @ORM\Column(type="string", length=4, nullable=true)
*/
protected $myfield;
}
当我使用tableB创建表单时,TableA的非空白约束仍然有效。
有什么想法吗?
我尝试使用@ORM \ AttributeOverride注释,但它不起作用......
答案 0 :(得分:0)
似乎确实Symfony Validation组件无法理解发生了什么。 解决方法是将验证约束放在getter上:
Class tableA{
/**
* @ORM\Column(type="string", length=4)
*/
protected $myfield;
}
/**
* @Assert\NotBlank(message="please.enter.a.value")
*/
public function getMyfield()
{
// ...
}
在扩展课程中:
Class tableAB extends tableA{
public function getMyfield()
{
// ...
}