Doctrine 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
字段没有 setter/getter。显然,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;
}
我的 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
字段没有 setter/getter。显然,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;
}