将“原则”实体值设置为 NULL



我已经用谷歌搜索过,所有答案似乎都建议使用查询生成器 - 但我更愿意通过实体 API 将此值设置为 NULL(即:setUsername(null))。

但是,这样做会将值设置为空字符串而不是 NULL。

有没有办法在不诉诸实现 UPDATE 查询的情况下实现这一目标?

编辑

$em = $this->getDoctrine()->getManager();
$quote = $em->getRepository('AppBundle:Quote')->findOneByUuid($uuid);
if (null !== $quote) {
    $quote->setUuid(null); // *** SET EMPTY STRING NOT RDBMS NULL ***
    $em->persist($quote);
    $em->flush();
    return $this->render('quote/thanks.html.twig');
}

实体

/**
 * @ORMColumn(type="string", unique=true, length=36, nullable=false)
 */
private $uuid;

您应该在实体上将 nullable 设置为 true

/**
 * @ORMColumn(type="string", unique=true, length=36, nullable=true)
 */
private $uuid;

之后,您应该运行此教义命令:

php bin/console doctrine:schema:update --force

在您的数据库中,如果列的默认值设置为空字符串,并且您将值从 doctrine 设置为 null,它将值设置为空字符串而不是空

最新更新