我目前在Tag实体和Blog实体之间存在ManyToMany / ManyToMany关系。
我现在使用的学说查询如下:
$qb = $this->createQueryBuilder('b')
->select('b, c, t')
->innerJoin('b.category', 'c')
->innerJoin('b.tags', 't')
->addOrderBy('b.created', 'DESC');
return $qb->getQuery()
->getResult();
当我尝试使用以下内容访问树枝中的标记时:
1)(标签消失,不显示)
{% for tag in blog %}
<p class="tag-links"><span>Tagged:</span> rel="tag">{{ tag.tags }}</a>, <a href="" rel="tag">Tag 2</p>
{% endfor %}
2)(没有for循环 - 我收到错误(无法转换为字符串))
<p class="tag-links"><span>Tagged:</span> rel="tag">{{ tag.tags }}</a>, <a href="" rel="tag">Tag 2</p>
控制器
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$blogs = $em->getRepository('AcmeBundle:Blog')
->getBlogs();
return array(
'blogs' => $blogs,
);
}
答案 0 :(得分:2)
您的循环应指向博客的tags属性,而不是博客实体本身。
{% for tag in blog.tags %}
或
{% for tag in blog.getTags() %}
此外,您不能加入类别和标签,因为您通过博客实体的相应属性获得相关关系实体。当您在枝条模板中访问它们时,它们将被代理加载。
我认为只应将BlogCollection传递给视图,然后执行
{% for blog in blogs %}
{% for tag in blog.tags %}
...
{% endfor %}
{% endfor %}