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
。