Doctrine orm 在原则2中,如何设置可以拥有自己收藏的收藏?
我使用的是zf2,我有实体存款单,可以有很多周期金额。每个periodTimeAmount可以有许多periodMoney元素。我可以使用许多periodTimeAmounts将我的实体保存到DB中,但periodMoney仅为最后一个periodTimeAmount实体保存 DepositodictDoctrine orm 在原则2中,如何设置可以拥有自己收藏的收藏?,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,我使用的是zf2,我有实体存款单,可以有很多周期金额。每个periodTimeAmount可以有许多periodMoney元素。我可以使用许多periodTimeAmounts将我的实体保存到DB中,但periodMoney仅为最后一个periodTimeAmount实体保存 Depositodict DepositDictPeriodTimeAmount 存钱 缺少什么?重要 条令只会检查关联的拥有方是否有变更。 仅对关联的反面所做的更改将被忽略。确保更新双向关联的双方(或者至少从
DepositDictPeriodTimeAmount
存钱
缺少什么?重要
条令只会检查关联的拥有方是否有变更。
仅对关联的反面所做的更改将被忽略。确保更新双向关联的双方(或者至少从原则的角度更新拥有方)
- 一方联盟永远不是拥有方
- 反向端必须使用OneToOne、OneToMany或ManyToMany映射声明的mappedBy属性。mappedBy属性包含拥有方的关联字段的名称
- 拥有方必须使用OneToOne、ManyToOne或ManyToMany映射声明的inversedBy属性。inversedBy属性包含反向侧关联字段的名称
- manytone始终是双向关联的拥有方
- 一对一总是双向关联的反面
$em->persist($entity);
$em->flush();
您已经设置了级联保持和删除选项-这很好
接下来要尝试的是将合并选项添加到级联中。
如果您的相关实体因某些原因被分离,则它们将被合并,例如:
/**
* @ORM\OneToMany(targetEntity="DepositDict\Entity\DepositDictPeriodMoney", mappedBy="periodTimeAmount", cascade={"persist", "remove", "merge"})
*/
合并:将合并操作级联到关联的实体。重要信息
条令只会检查关联的拥有方是否有变更。
仅对关联的反面所做的更改将被忽略。确保更新双向关联的双方(或者至少从原则的角度更新拥有方)
- 一方联盟永远不是拥有方
- 反向端必须使用OneToOne、OneToMany或ManyToMany映射声明的mappedBy属性。mappedBy属性包含拥有方的关联字段的名称
- 拥有方必须使用OneToOne、ManyToOne或ManyToMany映射声明的inversedBy属性。inversedBy属性包含反向侧关联字段的名称
- manytone始终是双向关联的拥有方
- 一对一总是双向关联的反面
$em->persist($entity);
$em->flush();
您已经设置了级联保持和删除选项-这很好
接下来要尝试的是将合并选项添加到级联中。
如果您的相关实体因某些原因被分离,则它们将被合并,例如:
/**
* @ORM\OneToMany(targetEntity="DepositDict\Entity\DepositDictPeriodMoney", mappedBy="periodTimeAmount", cascade={"persist", "remove", "merge"})
*/
合并:将合并操作级联到关联的实体。if($depositDict===null | |$depositDict instanceof depositDict){$this->depositDict=$depositDict;}否则{throw new\InvalidArgumentException(“$depositDict必须是实体\ depositDict的实例”);}这段代码是不必要的,因为php已经在公共函数setDepositoDict(DepositoDict$DepositoDict=null)中完成了类型检查。考虑创建SurvivDead接口,以便更容易地扩展!如果($depositDict===null | |$depositDict instanceof depositDict){$this->depositDict=$depositDict;}或者{throw new\InvalidArgumentException(“$depositDict必须是Entity\depositDict的实例”)}这个代码是不必要的,因为php已经在公共函数setDepositDict上完成了类型检查请考虑创建SturtIdId接口,以便更容易地扩展。我已经使用上面的所有规则创建了实体,我也尝试添加合并选项,但是它没有解决我的问题。我已经使用上面的所有规则创建了实体,我也尝试添加合并选项,但是它没有解决我的问题。