gpt4 book ai didi

symfony - persistAndFlush 和 persist、flush 之间的区别

转载 作者:行者123 更新时间:2023-12-02 15:29:56 24 4
gpt4 key购买 nike

我使用 Doctrine 创建了一个 Symfony 项目,当我将一个实体保留在数据库中时,我发现它保存了两次。

我分别使用了 persistAndflush() 以及 persist()flush(),但我不明白问题所在.

最佳答案

想象一下,在您的 Controller 中,您要对不同的对象执行多个操作:$obj1$obj2$obj3

现在您需要将所有转换(创建、更新、删除)保存在数据库中。要告诉 ORM 它需要执行这些操作,您需要通过以下方式“填充队列”:

$em->persist($obj1); 
$em->persist($obj2);
$em->persist($obj3);

现在您的队列中有三个对象,但数据库中仍然没有任何更改。刷新操作告诉 ORM/ODM“现在应用更改”。

$em->flush();

因此,应用于三个对象的修改将按照持久调用的顺序存储在数据库中:$obj1$obj2$obj3 .

关于symfony - persistAndFlush 和 persist、flush 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30343951/

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