Doctrine 不想将 `null` 赋给布尔属性

问题描述 投票:0回答:1

我有一个新的 Symfony 7 应用程序,支持用户帐户。基本设置非常简单:

symfony new mimesia --version="7.1.*" --webapp
php bin/console make:user

应用程序必须与现有数据库通信,该数据库与 Symfony 使用的方案大部分兼容。不过现有数据的验证列叫

verified
,而不是
is_verified
,也可以是
NULL

解决这个差异应该很容易,所以我只是扩展了

Entity/User
中的 Doctrine 注释,如下所示:

#[ORM\Column(name: 'verified', type: 'boolean', nullable: true)]
private bool $isVerified = false;

当我尝试运行该应用程序时,它遇到服务器错误:

无法将 null 分配给 bool 类型的属性

App\Entity\User::$isVerified

这对我来说没有意义,因为

nullable
标志应该已经解决了这个问题。这是库中的错误,还是我遗漏了什么?不管怎样,我们该如何解决这个问题?

php symfony doctrine
1个回答
1
投票

该属性仅设置为布尔值。要使其也接受 null,需要通过在 type 前添加一个问号使其可以为 null。

#[ORM\Column(name: 'verified', type: 'boolean', nullable: true)]
private ?bool $isVerified = false;
© www.soinside.com 2019 - 2024. All rights reserved.