symfony: fzTag-Pugin, доктрина: получить теги в шаблоне - PullRequest
1 голос
/ 31 января 2011

Итак, я использую плагин fzTag, который реализует расширение taggable для моделей Doctrine.

В My Action у меня есть что-то вроде:

      $this->pager = new sfDoctrinePager('BlogEntry',5);
      $this->pager->setQuery(Doctrine::getTable('BlogEntry')->createQuery('a')->leftJoin('a.Tags t')->where('t.id = ?',$this->tag->getId()));
      $this->pager->setPage($request->getParameter('page', 1));
      $this->pager->init();

и в моем шаблоне я использую:

 <?php foreach ($blogentry->getTags() as $tag): ?>
  <a href="<?php echo url_for('blog_tags',$tag) ?>"><?php echo $tag->getName() ?></a>
 <?php endforeach; ?>

Но в шаблоне $ blogentry-> getTags () возвращает только один тег? Как я могу изменить это?

1 Ответ

1 голос
/ 28 февраля 2011

Чтобы извлечь BlogEntries, но все же прочитать все его теги, я обычно использую подзапрос, который указывает на правильные записи.

Итак, после того как ваш запрос подготовлен, как для обычного списка BlogEntry, вы просто добавляетевот где условие:

$query->where($query->getRootAlias().'.id IN (
                    SELECT b1.id FROM BlogEntry b1 LEFT JOIN b1.Tags t1
                    WHERE t1.id = ? )', $this->tag->getId());

Конечно, лучше хранить его в своем классе BlogEntryTable.

...