1

私がそのような文書を持っているとしましょう:

<?php
use Doctrine\ODM\MongoDB\Mapping\Annotations as Mongo;

/**
 * @Mongo\Document
 */
class Foo
{
    /**
     * @Mongo\Id
     */
    protected $id;

    /**
     * @Mongo\Field(type="hash")
     */
    protected $obj;

    public function setObj($obj);
    {
        $this->obj = $obj;
    }

    public function getObj();
    {
        return $this->obj;
    }
}

$foo = new Foo;
$foo->setObj(new stdClass);

$dm->persist($foo);
$dm->flush();

$dm->refresh($foo);

var_dump($foo->getObj());
//it outputs: NULL

問題は、うまくいくと言われましたが、自分で試してみるとできません。doctrine または mongo 側からのエラーはありません。それは単にmongoに保存されません。

私は、payum paypal lib への PR で苦労しています。PR では、doctrine mongo マッピングのテストを追加しようとしています。

PS ORMでは、型を使用してシリアル化されたオブジェクトを保存できることを知っていますobject。mongo以外に似たようなものはありますか?

PPS PHP配列でも機能しません。

4

1 に答える 1

0

xml マッピングに問題がありました。基本的に、間違ったプロパティ名を に設定していましたfieldName。Doctime ODM はそれを黙ってスキップし、このプロパティの変更を保存します。正しい設定fieldNameは私を助け、hashタイプはうまく機能します。

コミットの詳細: https://github.com/Payum/PaypalExpressCheckoutNvp/commit/056d7f2061593cfdf543fd391d73f6a200859dca

于 2013-10-10T20:11:12.580 に答える