Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Php 我是否可以将同一文档在条令中保留多次?_Php_Mongodb_Symfony_Doctrine - Fatal编程技术网

Php 我是否可以将同一文档在条令中保留多次?

Php 我是否可以将同一文档在条令中保留多次?,php,mongodb,symfony,doctrine,Php,Mongodb,Symfony,Doctrine,我是否可以创建一个新的文档对象,然后在同一个线性指令列表中与文档管理器反复保持一致 我正在我的Symfony2项目中使用Doctrine、Stripe和MongoDB实现一个日志系统。基本上,我希望在执行每个指令时记录进度。这是因为有时指令只能到达某一点,因为银行会拒绝该卡,并引发异常。没有100%的确定错误。我希望能够从我结束的地方重新开始 比如说 $charge = new StripeChargeCardObject(); //this is the Document $charge-&g

我是否可以创建一个新的文档对象,然后在同一个线性指令列表中与文档管理器反复保持一致

我正在我的Symfony2项目中使用Doctrine、Stripe和MongoDB实现一个日志系统。基本上,我希望在执行每个指令时记录进度。这是因为有时指令只能到达某一点,因为银行会拒绝该卡,并引发异常。没有100%的确定错误。我希望能够从我结束的地方重新开始

比如说

$charge = new StripeChargeCardObject(); //this is the Document
$charge->setEvent("card.charger");
$charge->setPhase(1);
$this->dm = new DocumentManager();
$dm->persist($charge);
$dm->flush();

$payload = new StripePayload($event);

$charge->setPhase(2);
$charge->setPayload($payload);
$this->dm->persist($charge);
$this->dm->flush();

.....
当我继续往下看列表时,更改文档的值,直到抛出异常为止


我可以使用相同的$charge文档,继续编辑它,并继续保存它吗?或者,我是否需要在每次持久化并刷新后再次加载它?

只要您不刷新,数据库中就不会保存任何内容,因此您仍然可以编辑对象并持久化

在实际代码中,每次读取指令时都会创建一个新对象。我不确定这是你想要的行为

如果希望在DB中有一个对象,则应获取要编辑的对象(并且仅当查询返回空结果时才创建一个新对象)


希望它能帮助你看到什么对你更好

所以我可以继续编辑和持久化,然后在指令的最后,或者在异常情况下,我可以刷新,我可以继续吗?如果在引发异常之前刷新,您将能够使用简单的查询获取更新的对象以及所需的所有信息,所以,是的,基本上你应该有你需要的,如果我已经很好地理解了。