gpt4 book ai didi

php - 如何完全刷新具有@OneToMany 关系的实体?

转载 作者:可可西里 更新时间:2023-10-31 23:44:32 26 4
gpt4 key购买 nike

在我的项目中有一个 Cart 和一个 CartItem 实体,如下所示:

class Cart {

/**
* @OneToMany(targetEntity="CartItem", mappedBy="cart")
*/
private $items;

// ...
}

class CartItem {

/**
* @ManyToOne(targetEntity="Cart", inversedBy="items")
* @JoinColumn(name="cart_id", referencedColumnName="cart_id")
*/
private $cart;

// ...
}

如果我调用 EntityManager::refresh($cart),则其中的项目不会更新,只有 Cart 对象。

如何在不对每个子元素显式调用刷新的情况下从数据库中刷新对象及其所有内容?

我想避免调用 EntityManager::clear(),因为它会导致程序其他部分出现错误。

最佳答案

你可以这样做:

class Cart {

/**
* @OneToMany(targetEntity="CartItem", mappedBy="cart", cascade={"refresh"})
*/
private $items;

// ...
}

如文档中所述,谨慎使用“级联”: https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/best-practices.html#use-cascades-judiciously

关于php - 如何完全刷新具有@OneToMany 关系的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57948789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com