教义Mongodb Id是空白的


Doctrine Mongodb Id is blank

我在Symfony2应用程序PostController有以下代码

$dm = $this->get('doctrine_mongodb')->getManager();
$fields = array('id','title', 'content');
$qb = $dm->createQueryBuilder('AppBundle:BlogPost')
    ->select($fields);
$query = $qb->getQuery();
$blogPosts = $query->execute();
return $this->render('post/list.html.twig',array('posts' => $blogPosts));

在它的观点中,以下内容

<ol id="navigation">
    {% for post in posts %}
        <li> {{ post.id }} - {{ post.content }} <a href="{{path('delete')}}?id={{ post.id }}">delete</a> </li>
    {% endfor %}
</ol>

但是,返回到视图的id字段始终为空。我尝试多次清除缓存,但id仍然是空白的。我在这里做错了什么吗?

回答我自己的问题。

这很简单。我没有AppBundle:BlogPost实体中id字段的二传手/吸盘手。显然,Doctrine Mongodb使用 getter/setter 来填充数据库中的值。

更新:它不是Doctrine而是Twig模板引擎,需要getter/setter。

/** @ODM'Id */
protected $id;
public function setId($valId){
    $this->id=$valId;
}
public function getId(){
    return $this->id;
}