2012-10-10 50 views
0

我有一個MatchMany(分數)的文檔。 當我爲比賽添加新比分並返回比賽時,新比分不存在。在下一個請求,但分數在那裏。我如何強制Doctrine在相同的請求中更新我的Match?如何從Mongo獲取更新的對象

代碼:

$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

我發現了兩個解決我的問題:

  1. 做一個重定向到一個GET比賽,而不是在同一個請求返回。它工作,但感覺有點尷尬。

  2. $dm->createQueryBuilder('Match') ->field('_id')->equals($id) ->refresh(TRUE) ->getQuery() ->execute();在最後得到從數據庫刷新匹配。

0

你試過$dm->persist($score);$dm->flush();

+0

是的,沒有幫助。 –

+0

在$ dm-> persist($ score)後嘗試刷新;和BEFORE $ match-> addScores($分數); – Pascal

+0

我調用flush()多少次,或者我把這些調用放在哪裏似乎都沒有關係。我可能需要重構這個方法。 –

相關問題