假设我有这样的文件:
<?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。
我在PR to payum paypal lib中苦苦挣扎。 在PR中我试图为doctrine mongo mapping添加测试。
P.S。我知道ORM允许使用object
类型存储序列化对象。是否有类似的东西,但对于mongo?
P.P.S。它甚至不适用于php数组。
答案 0 :(得分:0)
我在xml映射中遇到了问题。基本上我将不正确的属性名称设置为fieldName
。 Doctime ODM以静默方式跳过它并保存此属性中的更改。设置正确的fieldName
有助于我和hash
类型正常工作。
提交中的更多详细信息:https://github.com/Payum/PaypalExpressCheckoutNvp/commit/056d7f2061593cfdf543fd391d73f6a200859dca