symfony - Symfony - 验证:属性的类型必须是 bool,给定字符串
问题描述
我有一个实体和一个布尔类型的列
/**
* @ORM\Column(type="boolean", nullable=false)
* @Assert\NotBlank()
*/
private $isActive;
当我尝试向此列添加字符串(只是为了测试)时,我收到此错误消息
The type of the attribute must be bool, string given
所以,我添加了验证类型
* @Assert\Type(
* 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
* }
* )
*/
推荐阅读
- java - Spring-data-elasticsearch vs elasticsearch RestHighLevelClient 客户端库
- r - 如何结合 sprintf(%s) 在 R 中合并正则表达式?
- sql - 在 postgresql 中无法检查表是否存在
- python - 遇到关于在 github rep 中导航代码的基本问题,因为单击函数引用不会突出显示它或显示定义
- python - 调度程序调用函数太快
- delphi-2009 - 如何替换synedit中的选定文本?
- tensorflow - 如何从 Tensorflow.js (.json) 模型转换为 Tensorflow (SavedModel) 或 Tensorflow Lite (.tflite) 模型?
- amazon-web-services - 证书管理器如何为多个域工作
- javascript - 如何修复此类型错误:无法读取 null 的属性“名称”
- reactjs - Heroku 部署问题