我有以下问题:我在一个tableB实体中扩展了一个实体tableA,我想覆盖字段上的@assert/notblank注释。
Class tableA{
...
/**
* @ORMColumn(type="string", length=4)
* @AssertNotBlank(message="please.enter.a.value")
*/
protected $myfield;
}
扩展类:
Class tableB extends tableA{
...
/**
* @ORMColumn(type="string", length=4, nullable=true)
*/
protected $myfield;
}
当我使用tableB创建表单时,TableA的非空白约束仍然有效。
你知道吗?
我已经尝试了@ORMAttributeOverride注释,但它不起作用…
似乎Symfony验证组件确实无法理解正在发生的事情。一种解决方法是将Validation约束放在getter上:
Class tableA{
/**
* @ORMColumn(type="string", length=4)
*/
protected $myfield;
}
/**
* @AssertNotBlank(message="please.enter.a.value")
*/
public function getMyfield()
{
// ...
}
在扩展类中:
Class tableAB extends tableA{
public function getMyfield()
{
// ...
}