php - 原则缓存关系

标签 php symfony caching doctrine-orm redis

我有一个实体“类别”,它与许多“项目”有关系,这些项目在术语中有许多“图像”。

我将结果缓存在“类别”存储库中,以在某些条件下获取链接到该类别的所有项目。缓存是通过 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/

相关文章:

php - 如何用 PHP 中的 UTF-8 支持替换所有非字母字符

php - 在 PHP 库中集成事件调度程序的最佳方式是什么?

php - 在循环中创建对象时检查内存使用情况?

php - 在 symfony 中更新数据库架构时发生异常

linux - Varnish 错误 : vcl. 加载/etc/varnish/default.vcl 失败

node.js - 在 Jenkins 管道上缓存 NPM 依赖项

javascript - 获取 HTML 标签值并分配给 PHP 变量

php - "Cannot set session ID after the session has started."测试表单时

php - Assets 不适用于 Symfony 3

javascript - 表单值缓存如何在浏览器中工作?