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

问题是:我被告知它有效,但是当我自己尝试时,我无法做到。教义或mongo方面没有任何错误。它根本没有保存到mongo。

我在PR to payum paypal lib 中苦苦挣扎。在 PR 中,我正在尝试为学说 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 回答