与我以前的帖子相关:
我想将此功能添加到我的infoAction();谁列出了所有的广告。
public function infoAction()
{
$listAdverts = $this->getDoctrine()
->getManager()
->getRepository('SocietyPerfclientBundle:Advert')
->getAdverts()
;
return $this->render('SocietyPerfclientBundle:Default:info.html.twig', array(
'listAdverts' => $listAdverts,
));
}
我必须在此处访问以下内容:
{% for reader in advert.readers %}
<i>Seen by : {{ reader.username }}</i>
{% endfor %}
答案 0 :(得分:1)
首先,关于你的第一个链接(从现在开始,你应该在一个帖子中发布所有问题/问题,而不是创建多个问题/链接,如果你有东西可以添加/删除,你可以编辑你的帖子),你没有正确设置关系:
在课程Advert
中,您缺少一些基本方法。为此,运行
$ php app/console doctrine:generate:entities SocietyPerfclientBundle:Advert
让doctrine为您生成缺少的方法。 AdvertReader
实体也是如此。
最后,您必须在$readers
实体中对Advert
字段进行实例化。类似的东西:
$this->readers = new \Doctrine\Common\Collections\ArrayCollection();
以及这些方法:addReader(AdvertReader $reader)
,removeReader(AdvertReader $reader)
和getReaders()
。
在AdvertReader
实体中,您只需拥有setAdvert(Advert $advers)
和getAdvert()
。
尝试一下,让我们知道是否有效。
答案 1 :(得分:0)
您提供的模板$ listAdvert包含您的广告数据。 要在视图中显示它,您必须使用它而不是直接使用您的实体名称
{% for reader in listAdverts.readers %}
<i>Seen by : {{ reader.username }}</i>
{% endfor %}
修复控制器
$listAdverts = $this->getDoctrine()
->getManager()
->getRepository('SocietyPerfclientBundle:Advert')
->findAll()
;