在Symfony 2中使用TWIG嵌套列表


Nested list with TWIG in Symfony 2

i have in database

Category:
id | name
1  | first
2  | second
etc

:

News:
id | category | name
1  | 1        | one
2  | 2        | two
3  | 1        | three
4  | 2        | four
5  | 2        | five

等。

如何在TWIG中显示此内容的最佳方法?

FIRST
- one
- three
SECOND
- two
- four
- five

等。

在Symfony 1.4中,我可以使用从模板PHP获取数据,但在Symfony 2中,我必须在控制器中获取所有数据,但如何?

所以你在Category和News之间有了一个工作关系,它工作得很简单。

// Class Category
/**
 * Relation to News
 * 
 * @ORM'OneToMany(targetEntity="News", mappedBy="news")
 */
private $news;
public function getNews()
{
    return $this->news;
}

因此,您将类别对象从控制器传递到模板,TWIG将转换"类别"。class ->getNews()函数。

{% for newsitem in category.news %}
    <p>{{ newsitem.id }}</p>
{% endfor %}

你可以找到关于这个"变量/函数处理"的更多信息:http://twig.sensiolabs.org/doc/templates.html#variables

我没有使用Sf2(尚未),所以我不能给你确切的你需要的,但它应该类似于这个:

  • 在您的控制器中,获得所有类别,内部连接与新闻的关系(以确保使用单个查询获得所需的所有数据)
  • 在你的模板中,对
  • 类别做一个for
  • 在该循环中,对当前类别与新闻
  • 的关系执行for