2017-10-17 60 views
-1

我用Google搜索和所有答案似乎使用查询生成器建议 - 但我宁愿这个值通过实体API设置为NULL(即:setUsername(空))。将Doctrine实体值设置为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'); 
} 

实体

/** 
* @ORM\Column(type="string", unique=true, length=36, nullable=false) 
*/ 
private $uuid; 
+0

什么 “这个值”?这个问题目前还不清楚。添加更多相关细节。 – svgrafov

+2

在数据库中,如果该列的默认值设置为空字符串,并正在从理论设定值设置为null,将其值设置为空字符串不是null –

+0

显示的'username'字段定义(教义注释)。 – miikes

回答

0

在数据库中,如果该列的默认值设置为空字符串,并正在从学说为null,它将设置值设定值空字符串不是null

1

你应该在你的实体设置为空的,以true

@ORM\Column(type="string", unique=true, length=36, nullable=true) 
private $uuid; 

之后,你应该用这个学说命令:

php bin/console doctrine:schema:update --force 
相关问题