将Doctrine实体值设置为NULL?
问题描述:
我用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;
答
在数据库中,如果该列的默认值设置为空字符串,并正在从学说为null,它将设置值设定值空字符串不是null
答
你应该在你的实体设置为空的,以true
:
@ORM\Column(type="string", unique=true, length=36, nullable=true)
private $uuid;
之后,你应该用这个学说命令:
php bin/console doctrine:schema:update --force
什么 “这个值”?这个问题目前还不清楚。添加更多相关细节。 – svgrafov
在数据库中,如果该列的默认值设置为空字符串,并正在从理论设定值设置为null,将其值设置为空字符串不是null –
显示的'username'字段定义(教义注释)。 – miikes