2011-01-31 4 views
1

그래서 im Doctrine 모델에 "taggable"확장을 구현하는 fzTag 플러그인을 사용합니다. $ blogentry-> getTags()가 하나 개의 태그를 반환symfony : fzTag-Pugin, Doctrine : 템플릿의 태그를 검색

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

그러나 템플릿에 :

 $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(); 

내 템플릿에 내가 사용 : 내 행동에

내가 무언가 같이 있나요? 내가 어떻게 바꿀 수 있니?

답변

1

BlogEntries를 가져 오지만 모든 태그를 읽으려면 일반적으로 적절한 항목을 가리키는 하위 쿼리를 사용합니다. 그것은 당신의 BlogEntryTable 클래스에 보관하는 것이 가장 좋습니다, 물론

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

:

그래서, 당신의 쿼리는 일반적인 블로그 항목의 목록과 같은 준비를 가진 후, 당신은이 곳 조건을 추가 할 수 있습니다.

+0

정말 고마워요! – worenga

관련 문제