我有一个匹配文档,上面有ReferenceMany(分数)。 当我向匹配添加新分数并返回匹配时,新分数不存在。然而,在下一个请求中,得分就在那里。如何强制Doctrine在同一请求中更新我的匹配?
代码:
$match = $dm->getRepository('Match')->find($matchId);
// Save score.
$dm->persist($score);
// Add score to match
$match->addScores($score);
$dm->flush(); // <-- This doesn't help.
return $match; // <-- Is missing the new Score.
答案 0 :(得分:0)
我找到了两个解决问题的方法:
重定向到GET匹配,而不是在同一个请求中返回。它有效,但感觉有点尴尬。
最后请$dm->createQueryBuilder('Match') ->field('_id')->equals($id) ->refresh(TRUE) ->getQuery() ->execute();
从数据库中获取更新后的匹配。
答案 1 :(得分:0)
您在$dm->flush();
之后尝试$dm->persist($score);
了吗?