2

一位用户可能只有 1 个项目或没有。(1-1..0 关系)

我正试图在 symfony2 中通过教义来实现这一点。

我已经完成了一对一的关系,这相当简单。但是我如何指定当我想创建一个用户时,该项目可以为空?(而不是插入新行,只保留 id_item 为空)

这就是我所拥有的:

user.orm.yml 文件

oneToOne:
  userItem:
    targetEntity: SOA\AXBundle\Entity\Items
    cascade: ["remove", "persist"]
    joinColumn:
      name: id_item        
      referencedColumnName: id 
      nullable: true

当然,我创建了 ItemsTypeForm 类,并在我的 userstypeform 类中添加了类型:

// UsersTypeForm Class
->add('userItem', new \SOA\AXBundle\Form\ItemsTypeForm())

当我添加一个新用户时,一切都很好。用户和项目一样被插入。但是当我尝试添加一个没有项目的用户(用户项目字段为空白)时,我收到以下错误:

SQLSTATE [23000]:违反完整性约束:1048 列“名称”不能为空

它正在尝试插入具有空值的项目。

虽然我可以接受 1 对 1 的关系,但我想学习如何建立 1 对 1..0 的关系。

4

0 回答 0