symfony - 在 Symfony2/Doctrine : Setting foreign key to not null seems impossible in one to one relationship 中

标签 symfony doctrine one-to-one notnull

在我的图片实体中,我有一个图像属性。 (其他属性是关于 alt、style 等)。我注意到该属性未设置为 nullable= false。我决定改变这一点,在进行 Doctrine 模式更新后,我注意到列 image_id 仍然设置为可为空。

这让我重新思考我的设计,并将 Picture 实体设置为从 Image 实体扩展。接下来我会尝试一下。我通常避免在 Doctrine 中使用与文件相关的实体进行类继承,因为它往往会导致太多问题。

但是我想知道。这是 Doctrine 中预期的行为吗?到目前为止,我的一对一关系已全部设置为可为空。是否不可能使它们不可为空?这是有道理的,因为两个密切相关的实体合并为一个实体可能会更好。不过我认为这种担忧应该由开发者来选择。就像我的例子一样,我不愿意在图像实体上使用继承。

尽管所有示例都显示可为空的外键,但官方文档并不是很明确。

代码如下:

/**
     * @var
     *
     * @ORM\OneToOne(targetEntity="AnyRoutes\SiteBundle\Entity\Image", cascade={"persist", "remove"})
     * @@ORM\JoinColumn(name="image_id", referencedColumnName="id", nullable=false)
     */
    private $image;

最佳答案

@@ORM\JoinColumn(name="image_id", referencedColumnName="id", nullable=false)

检查删除@@ORM\中的冗余@是否有帮助

关于symfony - 在 Symfony2/Doctrine : Setting foreign key to not null seems impossible in one to one relationship 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28930167/

相关文章:

fosuserbundle - 如何访问注入(inject)服务中的用户 token 以重新编码密码?

php - Doctrine 查询生成器 : Uncaught exception

java - Hibernate Criteria 查询一对多和一对多连续映射 - 表或 View 不存在

php - symfony 通知 : Undefined index: username

php - PHP 中的多值请求 header

php - Symfony2 post-update-cmd 给出 "An error occurred when generating the bootstrap file"

doctrine - 如何在表格便捷方法中指定HYDRATE_ARRAY?

php - 无法加载类型 "Doctrine\DBAL\Types\TextType"

c# - Entity Framework 5 Code First 中的一对一和一对多关系

sql - 一对一的数据库关系?