Symfony2如何从实体继承时删除@asset/notblank约束



我有以下问题:我在一个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()
{
    // ...
}

最新更新