2011-11-28 129 views
1

我在安装为什么Doctrine MongoDB ODM总是返回NULL?

/** 
    * @Route("/bla") 
    * @Template() 
    */ 
    public function blaAction() 
    { 
     $repository = $this->get('doctrine.odm.mongodb.document_manager')->getRepository('CompanySomeBundle:User'); 
     $user = $repository->findOneByUsername('bla'); 
     var_dump($user); // NULL 
     return new Response($user->getUsername()); // Fatal Error, user is not an object 
    } 

    /** 
    * @Route("/save-bla") 
    */ 
    public function saveBlaAction() 
    { 
     $user = new \Company\SomeBundle\Document\User; 
     $user->setUsername('bla'); 
     $dm = $this->get('doctrine.odm.mongodb.document_manager'); 
     $dm->persist($user); 
     $dm->flush(); 
     return new Response($user->getId()); // prints a new ID as expected, but nothing is actually saved to the DB 
    } 

我看不懂,我知道是在数据库中数据的麻烦使这项工作在一个新的。而且我也无法保存数据(尽管我可以获取新生成的ID)

注意:PHP的本地Mongo工作得很好。

+0

学说ODM mongodb不稳定,我有一些问题,祝你好运! :) – julesbou

+0

你的用户文档是怎样的? –

+0

@jules我应该使用Mandango/Propel吗?但我不喜欢活跃的记录,我想继续使用Data Mapper =( – HappyDeveloper

回答

0

问题部分解决。

改变了这一行:./vendor/doctrine-mongodb/lib/Doctrine/MongoDB/Collection.php#146

--return $this->mongoCollection->batchInsert($a, $options); 
++return $this->mongoCollection->batchInsert($a); 

有人扔一个警告(batchInsert期望的是1个参数,2个given9那会停止保存文档使用@来抑制警告并没有帮助现在的问题是$ options参数是安全写入所必需的,我不知道如何解决这个问题

相关问题