1

新規インストールでこれを機能させるのに問題があります

    /**
     * @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
    }

DB にあることがわかっているデータを読み取ることができません。また、データを保存することもできません (新しく生成された ID を取得できますが)

注: PHP のネイティブ Mongo は問題なく動作します。

4

2 に答える 2

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引数が必要なことです。これを修正する方法がわかりません。

于 2011-11-28T08:11:06.587 に答える
0

Mongo 拡張機能をアップグレードする必要があります。PHP ドキュメントには、2 番目のパラメーターが v1.0.5 で追加されたと記載されています。

http://us3.php.net/manual/en/mongocollection.batchinsert.php

于 2011-12-24T05:30:47.017 に答える