0

我的问题非常愚蠢,但我没有找到 Doctrine 2 dbal 和缓存管理器的示例。

我不能在 dbal 查询中使用 useResultCache 方法吗?

$q = \Zend_Registry::get('em')->getConnection()->createQueryBuilder()
->select('f.idprd, f.lprd')
->from('tb_prd', 'f')
->andWhere($q->expr()->eq('f.niveau', $iNiveau))
->orderBy('f.niveau')

非常感谢 !

4

1 回答 1

1

我找到 :

https://github.com/doctrine/dbal-documentation/blob/master/en/reference/caching.rst

它正在工作:

public static function getList() {
    $q = \Zend_Registry::get('em')->getConnection()->createQueryBuilder()
        ->select("np.*")
        ->from('tb_niv_prd', 'np')
        ->andWhere("np.lniveau IS NOT NULL")
        ->andWhere("np.niveau <> 10")
        ->addOrderBy('np.lniveau', 'ASC');

    $stmt = \Zend_Registry::get('em')->getConnection()->executeCacheQuery(
        $q->getSql(), array(), array(), new \Doctrine\DBAL\Cache\QueryCacheProfile(0,
            "TbNivPrdRepository_getList"));
    $aResult = $stmt->fetchAll(\PDO::FETCH_ASSOC);
    $stmt->closeCursor();
    return $aResult;
}
于 2012-12-26T14:19:51.423 回答