在Symfony 2中使用TWIG的嵌套列表

时间:2011-11-28 10:00:28

标签: php symfony twig

我在数据库中

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

ETC。

在TWIG中展示此内容的最佳方法是什么?

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

在Symfony 1.4中我可以使用来自模板PHP的get数据,但在Symfony 2中我必须获得控制器中的所有数据,但是如何?

2 个答案:

答案 0 :(得分:3)

因此,您在“类别”和“新闻”之间存在工作关系,它的工作原理很简单。

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

因此,您将类别对象从控制器传递到模板,TWIG将“category.news”转换为Category-> getNews()函数。

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

您可以找到有关此“变量/功能处理”的更多信息:http://twig.sensiolabs.org/doc/templates.html#variables

答案 1 :(得分:1)

我还没有使用Sf2,所以我无法准确地告诉你你需要什么,但它应该与此类似:

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