一个用户可能只有一个项目或没有。 (1-1..0关系)
我正在尝试用doctrine在symfony2中实现这一目标。
我已经完成了一对一的关系,这很简单。但是,我如何指定当我想创建用户时,该项可以为空? (并且不要插入新行,只留下id_item null)
这就是我所拥有的:
// 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的关系生活,但我想学习如何建立1比1的关系。
使用真实问题进行编辑。编辑为粗体。
答案 0 :(得分:0)
Assert的注释导致了问题。您必须在Assert中设置null值有效。