我有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'的状态,并将在不同的过程中在后台更新。
答案 0 :(得分:0)
要回答第一个问题,我将举一个例子: 如果您与汽车有用户相关(具有一对一的单向关系)。在这种情况下,如果您有您的用户,您将能够找到他拥有的汽车。但如果你有车,你就赢得了无法找到拥有这辆车的用户。 bidirectionnal允许您与对象车一起找到您的用户。
在第一种情况下,此代码将起作用:
$user->getCar();
但这个人不可能:
$car->getUser();
bidirectionnal允许您执行它们。
希望这有助于理解这个概念。