У меня есть категория «Категория», которая имеет отношение ко многим «проектам», которые в терминах имеют много «изображений».Отношение к доктрине доктрины
Я кэширую результаты внутри репозитория «Категория», чтобы получить весь проект, связанный с этой категорией, с некоторыми условиями. Кэширование выполняется с redisBundle и доктриной: query-> setResultCacheDriver функции:
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;
}
Я зацикливание Повсеместно проектов в представлении и отображения некоторых imags каждого проекта.
Можно ли кэшировать эти запросы? Im теперь получает 1 запрос для каждого проекта для извлечения его изображений.
Если вы присоединяетесь к изображениям и добавляете их к выбору так же, как и для проектов, он должен кэшировать только штраф. – Richard
На самом деле, кэширование в сторону, причина, по которой вы получаете запрос изображения для каждой категории, - это то, что вы ленивы загружаете изображения. Слева присоедините изображения к категориям и добавьте изображения в свой выбор, и все хорошо. – Richard
@Richard опубликуйте это как ответ :) –