【发布时间】:2015-03-08 18:20:33
【问题描述】:
在我的图片实体中,我有一个图像属性。 (其他属性是关于 alt、style 等)。我注意到该属性未设置为 nullable=false。我决定改变这一点,在进行理论架构更新后,我注意到列 image_id 仍然设置为可为空。
这让我重新思考了我的设计,并将 Picture 实体设置为从 Image 实体扩展而来。接下来我会试试的。我通常避免在 Doctrine 中与我的文件相关实体进行类继承,因为它往往会导致太多问题。
不过我想知道。这是教义的预期行为吗?到目前为止,我的一对一关系都已设置为可为空。是否不可能使它们不可为空?这是有道理的,因为将两个密切相关的实体合并为一个实体可能会更好。但是我认为这种关注应该留给开发人员的选择。就我而言,因为我不愿意在图像实体上使用继承。
尽管所有示例都显示可以为空的外键,但官方文档并不是很明确。
代码如下:
/**
* @var
*
* @ORM\OneToOne(targetEntity="AnyRoutes\SiteBundle\Entity\Image", cascade={"persist", "remove"})
* @@ORM\JoinColumn(name="image_id", referencedColumnName="id", nullable=false)
*/
private $image;
【问题讨论】:
标签: symfony doctrine one-to-one notnull