symfony2学说关系一对一

时间:2014-08-06 10:53:56

标签: forms symfony doctrine-orm indexing entity-relationship

我有2个问题。

我的第一个问题来自the doc of doctrine什么是“确切”一对一单向和一对一双向之间的区别以及何时使用其中任何一个?

其次我有一对一的

/**
 * @ORM\OneToOne(targetEntity="App\PurchaseBundle\Entity\Status", cascade={"persist"})
 * @ORM\JoinColumn(nullable=false)
 */
private $status;

当我尝试保存表单时,我有一个错误:

Integrity constraint violation: 1062 Duplicate entry '1' for key 'UNIQ_9861B36D6BF700BD' 

我从文档中了解到我需要双向进行这种关系,但我不明白为什么。我想要的只是删除唯一并用索引替换它。

由于

PS:以防它可能会有所帮助。我有一个实体购买,它在开始时将具有'order_created'的状态,并将在不同的过程中在后台更新。

1 个答案:

答案 0 :(得分:0)

要回答第一个问题,我将举一个例子: 如果您与汽车有用户相关(具有一对一的单向关系)。在这种情况下,如果您有您的用户,您将能够找到他拥有的汽车。但如果你有车,你就赢得了无法找到拥有这辆车的用户。 bidirectionnal允许您与对象车一起找到您的用户。

在第一种情况下,此代码将起作用:

$user->getCar();

但这个人不可能:

$car->getUser();

bidirectionnal允许您执行它们。

希望这有助于理解这个概念。