Php Mongodb哈希类型键返回';空';数组中的值

Php Mongodb哈希类型键返回';空';数组中的值,php,mongodb,symfony,hash,doctrine-orm,Php,Mongodb,Symfony,Hash,Doctrine Orm,有人能帮忙吗?我正在使用doctrine_mongodb,并试图获取文档中所有键的值。我得到了整型、字符串型和布尔型字段的值,但哈希型字段返回的值为“null” 下面是我如何定义/documents/Scripts.php类脚本中的一个散列字段 /** * @MongoDB\Document(collection="scripts") */ class Scripts { /** * @MongoDB\Id */ public $id; /**

有人能帮忙吗?我正在使用doctrine_mongodb,并试图获取文档中所有键的值。我得到了整型、字符串型和布尔型字段的值,但哈希型字段返回的值为“null”

下面是我如何定义/documents/Scripts.php类脚本中的一个散列字段

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

谢谢

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


希望这对某人有所帮助:)

ODM项目中的功能测试包括使用哈希映射字段的示例。如果在模型水合后看到
null
属性,这是因为该字段不存在或其值在从MongoDB返回的文档中为
null
。转换逻辑在中相当简单。

我也有同样的问题。对我来说,水合器是用旧值缓存的,它没有引用我添加的任何新值


应用程序/控制台缓存:清除
应用程序/控制台原则:mongodb:生成:文档BUNDLENAME


解决了我的问题。

生成的代理类和代理类不应手动修改。事实上,在每个文件的顶部都包含“这个类是由DOCTRINE ODM生成的。不要编辑这个文件”。如果您试图添加逻辑,以便哈希字段中始终包含属性,那么您很可能希望使用嵌入文档,并在您的案例中创建一个属性模型,其中包含相应的映射字段。