Вложенный список с TWIG в Symfony 2 - PullRequest
0 голосов
/ 28 ноября 2011

у меня в базе данных

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 я должен получить все данные в controllor, но как?

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Итак, у вас есть рабочее отношение между категорией и новостями, оно работает просто.

// 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 голос
/ 28 ноября 2011

Я не использую Sf2 (пока), поэтому я не могу дать вам именно то, что вам нужно, но это должно быть примерно так:

  • в вашем контроллере, получите все категории, внутренниеприсоединяясь к новостям (чтобы убедиться, что для получения всех необходимых данных используется один запрос)
  • в шаблоне, выполните for для категорий
  • в этом цикле,сделать for в отношении текущей категории к новостям
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...