Symfony MongoDb无法检索新的字段值

时间:2016-08-05 08:40:53

标签: php mongodb symfony doctrine-orm

我在文档说明

中添加了新条目
/**
 * @MongoDB\Field(type="string")
 */
protected $city;

然后让Doctrine生成实体。现在,新创建的记录具有新字段“city”,其值具有预期值。但是我只能在mongo控制台中看到这些值。在Doctrine输出中,它们总是设置为“null”。实体条目似乎是正确的

public function getFirstName()
{
    return $this->firstName;
}

/**
 * Get city
 *
 * @return string $city
 */
public function getCity()
{
    return $this->city;
}

我有资源库

public function allQuery($cat)
{
    $q = $this->createQueryBuilder()
        ->sort('createdAt', 'DESC');

    if ($cat) {
        $q->field('category.$id')->equals(new \MongoId($cat));
    }
    return $q;
}

服务

function addAllPager($perPage = 10, $cat)
{
    return $this->_addPager($this->repo()->allQuery($cat), $perPage);
}

在控制器

    $helper = $this->get('appbundle.test.helper');
    $tests = $helper->addAllPager(10, $cat);

Symfony探查器向我显示查询db.Test.find().sort({ "createdAt": -1 }).limit(10).skip(0)。 $ tests的转储内容

#firstName: "John"
#city: null

我缺少什么?

修改

使用php bin/console cache:clear进行缓存清除解决了问题。 php bin/console doctrine:mongodb:cache:clear-metadata还不够。谢谢malarzm

1 个答案:

答案 0 :(得分:1)

我知道这是在提出问题8个月之后但是有同样的问题并且与学说进行了一段时间的斗争。我正在使用Symfony 3,我试了php bin/console doctrine:mongodb:cache:clear-metadata没有运气。

我最后运行了命令php bin/console cache:clear或者只是使用此命令sudo rm -rf var/cache删除了缓存并解决了问题。