我有一个实体“类别”,它与许多“项目”有关系,这些项目在术语中有许多“图像”。
我将结果缓存在“类别”存储库中,以在某些条件下获取链接到该类别的所有项目。缓存是通过 redisBundle 和原则完成的:query->setResultCacheDriver functions:
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;
}
我循环浏览 View 中的项目并显示每个项目的一些图像。
是否可以将这些查询缓存到?我现在为每个项目获取 1 个查询以获取其图像。
最佳答案
您对缓存所做的不是问题。你得到每个类别的图像查询的原因是因为你懒加载图像。左键将图像加入类别并将图像添加到您的选择中,一切都很好。
关于php - 原则缓存关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232384/