は、私は、次のコードを持っている:Doctrine Collectionの要素数が正しくないのはなぜですか?
$em = $this->getDoctrine()->getManager();
if($groupType == 'existing'){
$urlGroup = $em->getRepository('UrlBuilderBundle:UrlGroup')->find($groupId);
}elseif($groupType == 'new'){
$urlGroup = new UrlGroup();
$groupName = $submittedData['groupName'];
$urlGroup->setName($groupName);
$em->persist($urlGroup);
}
$url = new Url();
$url->setName($name);
$url->setAuthorUser($authorUser);
$url->setUrl($generatedUrl);
$url->setUrlGroup($urlGroup);
$em->persist($url);
$em->flush();
$urlGroupName = $urlGroup->getName();
$urlCount = count($urlGroup->getUrls());
新しいUrlGroupが作成されると、最後の行(子URLオブジェクトの数)は常にURLが与えられたUrlGroupのために追加されている場合でも、0を返します。このコードは、AJAX呼び出しで使用されます。
ページリフレッシュカウント()は、正しい番号を返します。
誰かが問題を明らかにすることができれば、それを感謝します。 flush
は0 urls
を意味し、実行された前のphpはまだその状態を持っている - あなたは$em->flush()
を行うということは、データベース操作が実行されることを意味しますが、それはあなたの$urlGroup
オブジェクトがリフレッシュされることを意味するものではありませんので、