2015-07-05 80 views
0

我有一個實體「類別」,它與許多「項目」有關係,其中有許多「圖像」。學說高速緩存關係

我在「類別」存儲庫中緩存結果,以便在某些條件下獲取鏈接到該類別的所有項目。查詢 - > setResultCacheDriver功能:緩存與redisBundle和學說做

try { 


     $qb = $this->getEntityManager()->createQueryBuilder(); 

     $qb->select('Category', 'Projects') 
      ->from('AppBundle\Entity\Category', 'Category') 
      ->leftJoin(
       'Category.projects', 
       'Projects', 
       \Doctrine\ORM\Query\Expr\Join::WITH, 
       $qb->expr()->eq('Projects.active', 1) 
      ) 
      ->where(
       $qb->expr()->eq('Category.slug', ':slug') 
      ) 
      ->setParameter('slug', $slug); 

     $query = $qb->getQuery(); 

     $query 
      ->setResultCacheDriver($this->cacheDriver) 
      ->setResultCacheLifetime($this->cacheLifetime); 

     return $query->getOneOrNullResult(); 

    } catch (\Doctrine\ORM\NoResultException $e) { 
     return null; 
    } 

我循環throught在視圖中的項目,並顯示每個項目的一些imags。

是否有可能將這些查詢緩存到?我現在得到1個查詢每個項目來獲取其圖像。

+0

如果您加入圖像並將其添加到選擇項目的相同方式,它應該緩存得很好。 – Richard

+1

實際上,緩存一邊,你得到一個圖像查詢每個類別的原因是因爲你懶加載圖像。左圖像加入圖像並添加圖像到你的選擇,你都很好。 – Richard

+0

@Richard發帖回覆:) –

回答

1

你在做什麼與緩存不是問題。你得到每個類別的圖像查詢的原因是因爲你懶加載圖像。左圖像加入圖像並添加圖像到你的選擇,你都很好。

+0

謝謝,那的確是解決方案! –