我有一个实体和一个类型为布尔的列
/**
* @ORMColumn(type="boolean", nullable=false)
* @AssertNotBlank()
*/
private $isActive;
当我试图将字符串添加到此列(只是为了测试(时,我得到了以下错误消息
The type of the attribute must be bool, string given
因此,我添加了验证类型
* @AssertType(
* type="boolean",
* message="The value {{ value }} is not a valid {{ type }}."
* )
但总是会出现消息错误,所以,我尝试第二种解决方案,创建自己的资产验证
if(false === is_bool($user->getIsActive())){
$this->context->buildViolation($constraint->message)->atPath('isActive')->addViolation();
}
但代码总是被压缩,消息就会出现。
PS:如果我将列类型更改为字符串验证工作正确,但我想使用bool类型进行验证,有什么解决方案吗?
我通过添加以下行修复了此问题:
/**
* @ApiResource(
* denormalizationContext={
* "disable_type_enforcement"=true
* }
* )
*/