原则 - 我可以使用 mongo 哈希字段来存储 php 对象吗?


Doctrine - Can I use mongo hash field to store php object?

假设我有这样的文档:

<?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

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

我正在为支付PayPal lib的公关而苦苦挣扎。在 PR 中,我正在尝试添加对学说 mongo 映射的测试。

附言我知道ORM允许使用object类型存储序列化对象。除了蒙戈之外,还有类似的东西吗?

附言它甚至不适用于 php 数组。

我在xml映射中遇到了问题。基本上我把不正确的属性名称设置为 fieldName .Doctime ODM 静默地跳过它,并在此属性中保存更改。设置正确的fieldName对我有帮助,hash类型工作得很好。

提交中的更多详细信息:https://github.com/Payum/PaypalExpressCheckoutNvp/commit/056d7f2061593cfdf543fd391d73f6a200859dca