Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Doctrine orm 在原则2中,如何设置可以拥有自己收藏的收藏?_Doctrine Orm_Zend Framework2 - Fatal编程技术网

Doctrine orm 在原则2中,如何设置可以拥有自己收藏的收藏?

Doctrine orm 在原则2中,如何设置可以拥有自己收藏的收藏?,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,我使用的是zf2,我有实体存款单,可以有很多周期金额。每个periodTimeAmount可以有许多periodMoney元素。我可以使用许多periodTimeAmounts将我的实体保存到DB中,但periodMoney仅为最后一个periodTimeAmount实体保存 Depositodict DepositDictPeriodTimeAmount 存钱 缺少什么?重要 条令只会检查关联的拥有方是否有变更。 仅对关联的反面所做的更改将被忽略。确保更新双向关联的双方(或者至少从

我使用的是zf2,我有实体存款单,可以有很多周期金额。每个periodTimeAmount可以有许多periodMoney元素。我可以使用许多periodTimeAmounts将我的实体保存到DB中,但periodMoney仅为最后一个periodTimeAmount实体保存

Depositodict


DepositDictPeriodTimeAmount


存钱


缺少什么?

重要

条令只会检查关联的拥有方是否有变更。

仅对关联的反面所做的更改将被忽略。确保更新双向关联的双方(或者至少从原则的角度更新拥有方)

  • 一方联盟永远不是拥有方
  • 反向端必须使用OneToOne、OneToMany或ManyToMany映射声明的mappedBy属性。mappedBy属性包含拥有方的关联字段的名称
  • 拥有方必须使用OneToOne、ManyToOne或ManyToMany映射声明的inversedBy属性。inversedBy属性包含反向侧关联字段的名称
  • manytone始终是双向关联的拥有方
  • 一对一总是双向关联的反面
集合中的新实体不是由条令自动管理的

首先,请确保在刷新之前调用persist

$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始终是双向关联的拥有方
  • 一对一总是双向关联的反面
集合中的新实体不是由条令自动管理的

首先,请确保在刷新之前调用persist

$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接口,以便更容易地扩展。我已经使用上面的所有规则创建了实体,我也尝试添加合并选项,但是它没有解决我的问题。我已经使用上面的所有规则创建了实体,我也尝试添加合并选项,但是它没有解决我的问题。