2
一个用户可能只有1个项目或没有项目。 (1-1..0的关系)与教条的嵌入式形式中的1到1..0关系
我正试图在symfony2中使用教义来实现。
我已经完成了1对1的关系,它非常简单。但我怎么能指定主义,当我想创建一个用户,该项目可以为空? (而不是插入新行和刚刚离开id_item空)
这是我有:
// User Class
/**
*
* @ORM\OneToOne(targetEntity="Items", cascade={"persist"})
* @ORM\JoinColumn(name="id_item", referencedColumnName="id", nullable=true)
*
* @var SOA\AXBundle\Entity\Items $userItem
* @Assert\Type(type="SOA\AXBundle\Entity\Items")
*/
protected $userItem;
和当然,我创建ItemsTypeForm类,并在我的userstypeform类添加的类型:
// UsersTypeForm Class
->add('userItem', new \SOA\AXBundle\Form\ItemsTypeForm())
当我添加一个新用户,一切顺利。插入用户以及项目。但是,当我尝试添加地方有没有项目的用户(用户项字段为空),我收到以下错误:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null
它试图插入的项目,与空值。
虽然我可以生活在一对一的关系,我想学习如何使1到1..0的关系。
编辑出真正的问题。编辑是大胆的。
我认为assert与它无关,除了joincolumn注释中的空值之外,我没有看到任何“有效的空值”。我编辑了我的问题,现在我的问题是当我尝试创建没有项目的新用户时,它尝试插入一个空白值的新项目。 – jonv1 2012-01-30 17:23:12
你有在表单的树枝userItem.name? – 2012-02-01 10:24:22
是的。我必须去除它或类似的东西吗? – jonv1 2012-02-01 19:20:14