2014-01-30 37 views
0

有人可以帮忙吗?我正在使用doctrine_mongodb,并试图获取文档中所有键的值。我得到的字段值的整型,字符串和布尔型,但我的字段的类型哈希返回值为'null'Mongodb哈希类型键在数​​组中返回'null'值

这里是我如何定义/文档/脚本类脚本之一的哈希字段。 PHP

/** 
* @MongoDB\Document(collection="scripts") 
*/ 
class Scripts 
{ 
    /** 
    * @MongoDB\Id 
    */ 
    public $id; 
    /** 
    * @MongoDB\Hash 
    */ 
    public $properties; 

感谢

回答

0

现在是固定的。我用php类型数组手动创建了“/var/www/Symfony/app/cache/dev/doctrine/odm/mongodb/Hydrators/AtlasMpBundleDocumentScriptsHydrator.php”中的散列类型字段。打开文件时很容易理解。

希望这可以帮助别人:)在ODM项目

+0

不应手动修改生成的水化器和代理类。实际上,在每个文件的顶部都包括“这个类由DOCTRON ODM生成,不要编辑这个文件”。如果您试图添加逻辑以便散列字段始终包含其中的属性,那么您很可能希望使用嵌入式文档并根据您的情况创建一个属性模型,其中包含适当的映射字段。 – jmikola

0

功能测试GH453Test.php包括使用哈希映射字段的一个例子。如果在模型水合后看到null属性,那是因为该字段在MongoDB返回的文档中不存在或其值为nullHashType::convertToPHPValue()中的转换逻辑相当简单。

1

我有同样的问题。对我来说Hydrator被旧值缓存,并没有参考我添加的任何新的值。

app/console cache:clear app/console doctrine:mongodb:generate:documents BUNDLENAME

解决我的问题。