作为参数传递时,教义实体未更新

问题描述 投票:0回答:1

我有一个 Doctrine 实体的实例,它作为参数传递给 Symfony 服务的方法。

我在方法之外进行所有数据操作,但由于某种原因,这些更改没有反映在方法中。

例如:

// I've a payment entity, the current status is "created"
// ...data manipulation...
$payment->setStatus('completed');
$this->em->flush($payment);
...
$this->myService->doStuff($payment);

// In the doStuff method...
public function doStuff(Payment $payment) {
    // The status still "created", not "completed"...
    // I don't do any find/getRepository/refresh here, so the entity should not be hydrated again
    $status = $payment->getStatus(); 
}

为什么会出现这种情况?我在 Symfony/API 平台 DataPersister 中执行此操作。

这种情况仅在生产中发生,我无法在我的电脑上重现此情况。

不同之处在于,在生产中我使用 k8s 集群作为应用程序,使用 MySQL 集群作为数据库。

我想到了数据库副本问题,但是,由于我没有在方法中进行任何查询,所以不可能(这是一个非常简单的方法,只需检查付款状态)。

php symfony doctrine-orm doctrine api-platform.com
1个回答
0
投票

冲水之前为什么不坚持呢? 如https://symfony.com/doc/current/doctrine.html

© www.soinside.com 2019 - 2024. All rights reserved.