簡體   English   中英

Symfony 2 Doctrine ODM MongoDB保留了一個水合物文檔

[英]Symfony 2 Doctrine ODM MongoDB perstist an hydrate document

當我要保留$ notice文檔時,它將保存$ contexteUtilObj,但不會將$ contexteUtilObj與$ notice文檔相關聯。

//Controller
$dm = $this->get('doctrine.odm.mongodb.document_manager');
$notice = $dm->getRepository('WikiludoNoticeBundle:Notice')->find($id);
$contexteUtils = array();
$notice->setContexteUtilisations($contexteUtils);
if (count($form['context']) > 0) {
    foreach ($form['context'] as $key => $context) {
        if ($key == 0 and ! $context['valeur']) {
            break;
        }
        if (!$context['valeur']) {
            continue;
        }
        if ($context['id'] and ! is_numeric($context['id'])) {
            $contexteUtilObj = $dm->getRepository('WikiludoNoticeBundle:ContexteUtilisation')->find($context['id']);
        } else {
            $contexteUtilObj = new \Wikiludo\NoticeBundle\Document\ContexteUtilisation();
        }
        $contexteUtilObj->setContexteUtilisation1($context['valeur']);
        $notice->addContexteUtilisations($contexteUtilObj);
    }
}
$dm->persist($notice);
$dm->flush();

...

//Notice Document Structure
/**
 * @MongoDB\ReferenceMany(
 *      targetDocument="Wikiludo\NoticeBundle\Document\ContexteUtilisation",
 *      cascade="all"
 * )
 */
protected $contexteUtilisations;

對不起,我解決了我的問題。 我必須這樣做:

$dm->flush($notice);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM